使用python读取1TB HDFS csv文件的有效方法是啥

Posted

技术标签:

【中文标题】使用python读取1TB HDFS csv文件的有效方法是啥【英文标题】:What is the efficient way to read 1TB HDFS csv file using python使用python读取1TB HDFS csv文件的有效方法是什么 【发布时间】:2018-05-04 18:05:31 【问题描述】:

我有一个放在 HDFS 中的文件。我想知道什么是使用 python 读取文件的有效方法。我可以使用 pyspark 吗?

【问题讨论】:

1 Tb csv 文件?古比请 尝试过 Spark吗? “高效”的方法是 1) 在 Hadoop 中不使用 CSV - 将其转换为 Parquet 2) 在其上定义 Hive 表并使用 Presto 或 Impala,如果你有可用的。否则,Hive 或 Spark 查看 Dask。 你想用这些数据做什么? HDFS 和 YARN 在处理数据方面非常有效,但您需要的实际工具由用例定义。 【参考方案1】:

您可以使用PySpark,即Python API for Spark。它将允许您使用Spark 来利用集群资源。我建议从 1 TB 文件中提取一小块,并在上面测试你的代码。如果一切看起来都不错,那么您可以在更大的数据集上提交您的工作。

如果使用 Spark:根据您在集群上的内存量,考虑将 RDDs 缓存在您计划经常重用的内存中。这将加快您的工作执行速度。

【讨论】:

以上是关于使用python读取1TB HDFS csv文件的有效方法是啥的主要内容,如果未能解决你的问题,请参考以下文章

在python中读取15 M行csv文件的有效方法

PySpark 无法从 hdfs 读取 csv:HiveExternalCatalog 错误

直接从 HDFS 读取文件

spark 任务提交参数

从 HDFS CSV 文件构建的 Spark Dataframe 中提取列名

gh读取csv文件