2017-02-03 68 views
1

我想保存使用bucketBy火花2.0 bucketBy保存

df.write.bucketBy("column").format("parquet").save() 

一個數據幀但這產生錯誤: 異常線程「main」 org.apache.spark.sql.AnalysisException:「保存」呢目前不支持分支;

有沒有其他方法可以保存bucketBy的結果?

+0

沒有提議? – syl

+0

DataFrameWriter.bucketBy可用於像Hive一樣提取輸出。請參閱以下網址的API文檔:https://spark.apache.org/docs/2.0.0/api/java/org/apache/spark/sql/DataFrameWriter.html#bucketBy(int,%20java.lang.String,% 20scala.collection.Seq) – Salim

回答

3

直到現在,spark 2.1,save不支持錯誤消息中提到的bucketing。

方法bucketBy對給定列的輸出進行存儲,並且當/如果指定了輸出,則輸出將在文件系統上進行佈局,類似於Hive的bucketing方案。

有一個JIRA正在進行Hive bucketing support [SPARK-19256]的工作。

所以桶裝之後唯一可用的操作將是saveAsTable節省了DataFrame/Dataset的內容作爲指定的表。

而且由於火花主要與蜂巢連接,因此實際上您將它保存到hive

所以,你實際上是不可能在火花的時候。