Spark 2.1:如何在DataFrameWriter partitionBy中提供多个列

时间:2017-06-20 14:34:42

标签: apache-spark

我正在尝试使用Spark 2.1创建一个包含多个分区的orc文件。我的代码看起来像这样: df.write.option("compression", "zlib").partitionBy("a, b").orc("s3a://bucket/")

a& b是我要分区的两列。

我坚持使用org.apache.spark.sql.AnalysisException: Partition column "a, b" not found in schema

我在partitionBy 'a, b''a', 'b'尝试了几种组合......没有用?有任何想法吗?谢谢!

2 个答案:

答案 0 :(得分:5)

所以,我发现了问题!对于投票的人,请注意:功能的顺序对于多个分区的工作很重要!首先是partitionBy,然后是其他人。这样可行:df.write.partitionBy("a", "b").option("compression", "zlib").orc("s3a://bucket/")!就是这样,从文档来看它并不明显,而且在网络上的文档或其他答案中没有任何地方,这是显而易见的!

答案 1 :(得分:0)

df.write.option("compression", "zlib").partitionBy("a", "b").orc("s3a://bucket/")

也许这会有所帮助。