【问题标题】:spark write parquet file. How can I specify the row groups size?火花写入镶木地板文件。如何指定行组大小?
【发布时间】:2018-04-05 19:50:31
【问题描述】:

我正在努力寻找如何在 Spark API 中指定 parquet 文件编写器的行组大小。

我找到了一种方法,即使用具有此选项的快速镶木地板 python 模块:

从 fastparquet 导入写入

write 有参数: row_group_offsets

另外,row_group size 的最佳数字是多少?

感谢快速镶木地板,我做了一些实验。例如,选择 100 万的 row_groupsize 比 10 000 快十倍。但是如果我选择超过 100 万个,它就会开始减慢我的简单查询速度。

提前感谢您的帮助

【问题讨论】:

    标签: apache-spark pyspark parquet fastparquet


    【解决方案1】:

    Parquet 参数是 hadoop 选项的一部分,可以在 parquet 写入命令之前设置,如下所示:

    val sc : SparkContext // An existing SparkContext.
    sc.hadoopConfiguration.setInt("parquet.block.size", 1024 * 1024 * 1024)
    

    【讨论】:

    • 谢谢罗伯托。似乎修改分区数(默认为 600)也有帮助。现在我可以使用 parquet-tools 看到我的 parquet 文件的块大小增加了。我有100万行。但是使用 spark 加载我的数据并进行简单的计数操作仍然很慢。我说的数据集只有 400 万行和 15 列
    【解决方案2】:

    谢谢罗伯托。似乎修改分区数(默认为 600)也有帮助。现在我可以使用 parquet-tools 看到我的 parquet 文件的块大小增加了。我有 100 万行一个块。

    但是使用 spark 加载我的数据并执行简单的计数操作仍然很慢。 我说的数据集只有400万行15列

    【讨论】:

      猜你喜欢
      • 2016-01-18
      • 2019-02-11
      • 1970-01-01
      • 2020-01-10
      • 2017-03-09
      • 2018-12-20
      • 2016-08-31
      • 2018-05-19
      • 1970-01-01
      相关资源
      最近更新 更多