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

时间:2017-03-04 14:36:37

标签: scala apache-spark spark-streaming spark-dataframe parquet

我正在尝试按照此example将一些数据保存为拼花格式并阅读。如果我使用var result = entities.Players .Select(p => new PlayerRanking { Player = p, Rank = entities.Players.Where(p1 => p1.Seniority > p.Seniority) .Select(p1 => p1.Seniority).Distinct().Count() + 1, Score = p.Seniority }) .Where(r => r.Rank <= 10) .OrderBy(r => r.Rank) .ThenBy(r => r.Player.UserName) .ToPagedList(pageNb, 10); ,则迭代Spark作业会出现错误

  

“filename”已存在。

如果我使用write.parquet("filename")选项,那么Spark作业会给出错误

  

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

请告诉我确保新数据仅附加到镶木地板文件的最佳方法。我可以在这些镶木桌上定义主键吗?

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

SaveMode.Append

1 个答案:

答案 0 :(得分:1)

我相信如果您使用.parquet("...."),则应使用.mode('append'), 不是SaveMode.Append

df.write.mode('append').parquet("....")