2017-06-20 57 views
-1

我正在嘗試使用Spark 2.1創建包含多個分區的ORC文件。我的代碼看起來像這樣: df.write.option("compression", "zlib").partitionBy("a, b").orc("s3a://bucket/")Spark 2.1:如何在DataFrameWriter分區中提供多列BY

其中a & b兩列上,我想分區的。

我被卡住了org.apache.spark.sql.AnalysisException: Partition column "a, b" not found in schema

我嘗試了partitionBy的幾種組合,如'a, b''a', 'b' ......沒有什麼作用的?有任何想法嗎?謝謝!

+0

所以,我發現這個問題!對於投票的人來說,請注意:函數的順序對於多個分區的工作非常重要!首先來'partitionBy'然後來到其他人。所以這個工作: 'df.write.partitionBy(「a」,「b」)。option(「compression」,「zlib」).orc(「s3a:// bucket /」)'!就這一點而言,從文檔來看,它並不明顯,並且在網絡上沒有任何文檔或其他答案,這是顯而易見的! – iyerland

回答

2

所以,我發現了問題!對於投票的人來說,請注意:函數的順序對於多個分區的工作非常重要!首先來partitionBy然後來其他人。所以這個工作:df.write.partitionBy("a", "b").option("compression", "zlib").orc("s3a://bucket/")!就這一點而言,從文檔來看,它並不明顯,並且在網絡上沒有任何文檔或其他答案,這是顯而易見的!

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

也許這可以幫到你。

+0

我也試過,沒有工作!請看我的答案。謝謝。 – iyerland