我正在尝试使用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'
尝试了几种组合......没有用?有任何想法吗?谢谢!
答案 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/")
也许这会有所帮助。