如何以镶木地板格式保存数据并追加条目

问题描述:

我想按照此example以镶木地板格式保存一些数据并读取它。如果我使用write.parquet("filename"),那么迭代Spark作业给出错误:如何以镶木地板格式保存数据并追加条目

“filename”已存在。

如果我使用SaveMode.Append选项,然后星火的工作给出了错误

“.spark.sql.AnalysisException:指定数据库名称或其他限定不允许临时表”。

请让我知道确保将新数据添加到parquet文件的最佳方法。我可以在这些镶木地板上定义主键吗?

我在Hortonworks 2.5系统上使用Spark 1.6.2。下面是代码:

// Option 1: peopleDF.write.parquet("people.parquet") 
//Option 2: 
peopleDF.write.format("parquet").mode(SaveMode.Append).saveAsTable("people.parquet") 

// Read in the parquet file created above 
val parquetFile = spark.read.parquet("people.parquet") 

//Parquet files can also be registered as tables and then used in SQL statements. 
parquetFile.registerTempTable("parquetFile") 
val teenagers = sqlContext.sql("SELECT * FROM people.parquet") 
+0

一种方法是将整个数据读取为Dataframe,使用FileSystem api删除文件,然后再次将数据转储为parquet文件 –

我相信如果你使用.parquet( “......”),你应该使用.mode( '追加'), 不SaveMode.Append:

DF .write.mode('append')。parquet(“....”)