取消
顯示的結果
而不是尋找
你的意思是:

表後ZORDER需要覆蓋嗎?

numersoz
新的貢獻者三世

你好,

將新值附加到三角洲表後,我需要刪除重複的行。

使用PySpark刪除重複的行後,我覆蓋表(保持模式)。

我的問題是,我該怎麼做ZORDER嗎?

另一個問題,有另一種減少重複嗎?我試著減少重複使用SQL CTE,但沒有成功。(錯誤:刪除隻支持v2表。)

#添加新數據:data.write.mode(“追加”).format .saveAsTable(“δ”)(“table_name”) #讀表:df =火花。sql (f“SELECT * FROM {table_name}”) #降低重複:df = df。dropDuplicates ([“col1”、“col2”]) #重寫數據:df.write.format .mode(“δ”)(“覆蓋”)。選項(“overwriteSchema”,“假”).saveAsTable (f“{table_name}”)

5回複5

werners1
尊敬的貢獻者三世

z值不是由自動最優化。所以你必須具體運行它。

為了避免重複使用合並,而不是附加。但運行時可能會大於附加+ dropdups。

numersoz
新的貢獻者三世

@Werner Stinckens謝謝!

我是觸發z值創建表後。但可以肯定的是,如果它需要重新z值後進行覆蓋三角洲表(模式覆蓋設置為false)。

werners1
尊敬的貢獻者三世

z值從來都不是必需的,也有如果你覆蓋z-ordered表。

唯一會發生的是,新數據寫入不是z值。

yogu
尊敬的貢獻者三世

避免重複,最好的方法是合並報表。

https://docs.m.eheci.com/sql/language-manual/delta-merge-into.html

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map