将太大而无法放入内存的CSV文件保存到parquet fi中

2024-06-12 18:23:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我的开发环境是一个4核的单用户工作站,但不运行Spark或HDFS。我有一个CSV文件,太大了,无法放入内存。我想将它保存为一个parquet文件,并使用现有工具在本地进行分析,但是将来可以将其移动到Spark集群中,并使用Spark进行分析。在

有没有什么方法可以一行一行地执行这个操作而不将文件移到Spark集群上呢?在

我正在寻找一个纯python解决方案,它不涉及Spark的使用。在


Tags: 文件工具csv方法内存环境集群hdfs
2条回答

读取比内存大的文件没有问题。Spark可以处理这种情况,无需任何调整

spark.read.csv(in_path).write.parquet(out_path)

只要不对输入使用不可拆分的压缩(例如gzip),就可以正常工作。在

在pyarrow.拼花地板函数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.parquettwriter对象也可以这样做。。在

相关问题 更多 >