簡體   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