我們不需要為δ設置分區表我們沒有許多性能問題和三角洲湖開箱即用的優化為我們偉大的工作。但是現在有一個需要設置一個特定的分區列一些表允許並發三角洲合並分區。
我們使用非托管表與數據坐在s3
最好的方法是什麼現有的三角洲表上添加/更新分區列?
我試過的改變表日誌添加分區(日期=日期“2021-09-10”),但它沒有工作也不添加分區所有值的日期
也試著改寫表和設置分區列:
(df.write.format(“δ”).mode .option(“覆蓋”)(“overwriteSchema”,“真正的”).partitionBy(<名稱>上校).saveAsTable(表名稱> <))
但我不認為分區名稱,當我檢查表描述表,所以不確定這是正確的方法。
另一個選擇是重新創建表和我一樣看到我們可以設置分區列在創建一個表,但是真的不想這樣做除了作為最後的手段。
嗨@Harikrishnan P H,
三角洲湖允許您更新一個表的模式。支持以下類型的變化:
你可以讓這些變化顯式或隱式地使用DML使用DDL。
重要:-
當你更新一個δ表模式,流讀取該表的終止。如果你想繼續流,您必須重新啟動它。
推薦的方法,請參閱生產磚上考慮結構的流媒體應用程序。
明確更新模式
您可以使用以下DDL來顯式地改變一個表的模式。
添加列,
ALTER TABLE table_name添加列(col_name data_type[評論col_comment] [colA_name後的第一個|],…)
默認情況下,nullability是正確的。
添加一個列到嵌套,使用以下:
ALTER TABLE (col_name table_name添加列。nested_col_name data_type[評論col_comment] [colA_name後的第一個|],…)
例子:-
如果之前的模式運行ALTER TABLE (colB框添加列。嵌套的字符串field1之後):
——根
| -可樂
| - colB
| + field1
| + field2
後的模式是:
——根
| -可樂
| - colB
| + field1
| +嵌套
| + field2
注意:-
添加嵌套列支持結構。不支持數組和地圖。
你可以在這裏找到它。
來源:-https://docs.www.eheci.com/delta/delta-batch.html添加列
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
”我已經嚐試改變表添加分區,但它沒有工作。”
你介意分享的代碼片段嗎?