用于宽桌的火花镶木地板行组大小

时间:2018-03-07 12:38:29

标签: hadoop apache-spark hadoop2 parquet

我使用Spark 1.6.0编写一个宽表(400+列)作为镶木地板文件。 我的遗嘱执行人的资源限制在16Gb。

我使用distribute by <partition_cols>阅读了表格,然后使用df.write.distributeBy(<partition_cols>).parquet(<path>) 这给了我每个分区一个镶木地板文件。这正是我想要的。

问题是,当分区大小太大时,执行程序会耗尽内存。我试图通过将parquet.block.size从128Mb减少到64Mb来解决这个问题。这没有效果。当我检查输出镶木地板文件时,我看到行组大小只有大约2Mb。 对于另一个镶木地板文件,它是从具有相同配置的窄表创建的,行组大小为100Mb。

有人可以向我解释如何编写镶木地板文件,以及parquet.block.size的效果吗?

谢谢!

0 个答案:

没有答案