繁体   English   中英

如何覆盖 Spark 数据集

[英]How to overwrite Spark Dataset

我的应用程序中有一个现有的 Spark 数据集。 我用了

Dataset<Row> dataframe = dataframe.withColumn(colName, new Column);

更新它。 现在我的最后一步是将其写入 Parquet 文件。

dataframe.write().mode(SaveMode.Append).parquet(getDSPath(dataset).toString());

当我使用 Append 模式时,它会添加到现有数据集中,从而创建重复的行。 如果我使用“SaveMode.Overwrite”,则会引发异常:

File file:/share/data/applocation/spark/DATASETUAT/part-00000-3124c90f-461f-4c13-a5b2-25064de0ce59-c000.snappy.parquet does not exist

我可以做些什么来覆盖现有的数据集?

我解决了。 诀窍是在不同的位置创建一个临时 Parquet 文件。 然后将其读入新的数据集,然后覆盖原始 Parquet 文件。

最后,有必要删除临时 Parquet 文件并清除数据集。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM