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

有什麼辦法可以覆蓋一個分區三角洲表中沒有指定每個分區在替換嗎?對於非過時的分區,這真的是一個惹三角洲表。

Maverick1
重視貢獻二世

有什麼辦法可以覆蓋一個分區三角洲表中沒有指定每個分區在取代。對於非過時的分區,這真的是一個惹三角洲表。

我大部分的德團隊不想采用三角洲,因為這些故障。

3回複3

Hubert_Dudek1
尊敬的貢獻者三世

@Saurabh Verma三角洲酸和提交日誌,模式,等等,這就是為什麼它是不同的。所以當你刪除所有相關數據分區,它仍將呆在那裏,因為它有一個曆史。插入覆蓋可以覆蓋數據隻在指定的分區(但您需要指定)。最好的方法是使用合並當你有一個惟一的id和分區的條款。

插入覆蓋表部分分區(p1 = part1)值(3)

匿名
不適用

嗨@Saurabh Verma跟進你有機會檢查@Hubert杜德克先前的評論?

Maverick1
重視貢獻二世

@Chetan Kardekar:

在這種情況下休伯特的回答是不相關的。他的回答可能是正確的如果有人執行數據倉庫場景有主鍵等,完全使用SQL。jmaki同樣API代碼通常不會使用MERGE語句。

我見過一個開放拉請求這個功能,很多人都問同樣的但不知道為什麼工程團隊猶豫來實現它。我寫了一個出租汽車司機代碼執行相關操作的返回列表寫分區可以直接送入spark.write.format .mode(“δ”)(“覆蓋”)。選項(“replaceWhere”, writepar) .save ()聲明。

def _get_partitions(火花:SparkSession, df, partition_col_list):“”“創建分區的列表輸入dataframe,基於分區列。:param火花:火花會話。:param df:輸入dataframe。:param partition_col_list:分區列輸入dataframe列表。返回:輸入的分區列表dataframe df”“”我。dtypes:如果我[1](“日期”、“時間戳”):df = df。withColumn(我[0],F.col(我[0]).cast (StringType ())) write_par_temp = df.select (partition_col_list) .distinct () .rdd.collect () write_par_temp2 = str (str (el)。替換(“行”、“”)。取代(“(”、“”).replace (“)””、“)。替換(”、“,”、“)的el write_par_temp])。取代(' ('," ")。替換(“]”,“”)。替換(“”、“”)。替換(“(”、“)或“)len_par len (write_par_temp2) write_par = = write_par_temp2 [: len_par - 1] +)的打印(“write_par: {}”.format (write_par))返回write_par

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

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

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

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

Baidu
map