2017-02-03 33 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

所以,你实际上是不可能在火花的时候。