我的开发环境是一个单用户工作站,有4个内核,但没有运行Spark或HDFS。我的CSV文件太大,无法容纳在内存中。我想将它保存为镶木地板文件并使用现有工具在本地进行分析,但是将来能够将其移动到Spark集群并使用Spark进行分析。
有没有办法逐行执行此操作而不将文件移动到Spark群集?
我正在寻找一种不涉及使用Spark的纯python解决方案。
答案 0 :(得分:1)
读取大于内存的文件没有问题。 Spark可以处理这样的情况,无需任何调整,
spark.read.csv(in_path).write.parquet(out_path)
只要您不对输入使用不可分割的压缩(例如gzip
),就可以正常工作。
答案 1 :(得分:0)
pyarrow.parquet函数write_to_dataset()看起来可以执行此操作。 https://arrow.apache.org/docs/python/parquet.html#writing-to-partitioned-datasets
但是,我目前无法找到此功能的详细文档-您可能需要查看源代码以了解其功能。 https://github.com/apache/arrow/blob/master/python/pyarrow/parquet.py,在撰写本文时,在第1154行。
pyarrow.parquet.ParquetWriter对象也可以做到这一点。