我試圖盡可能使用火花但經驗回歸。希望得到一些方向如何正確地使用它。
我創建了一個表使用spark.sql磚
火花。sql (select * from example_view) \ .write \ .mode(覆蓋)\ .saveAsTable (“example_table”)
然後我需要補一些價值
% sql更新example_table集create_date = ' 2022-02-16 ' id =“123”;更新example_table組create_date = ' 2022-02-17 ' id =“124”;更新example_table組create_date = ' 2022-02-18 ' id =“125”;更新example_table組create_date = ' 2022-02-19 ' id =“126”;
然而,我發現這awlfully緩慢,因為它創造了數以百計的火花工作:
為什麼它引發這樣做,並建議如何改善我的代碼嗎?最後一件事我要做的是將其轉換回熊貓和單獨更新單元值。任何建議都是感激。
嗨,@Vincent能源部,
在三角洲表更新是可用的,但在引擎蓋下麵你更新檢查機關文件,這意味著每個更新都需要找到該文件,記錄存儲,然後重寫文件新版本,新文件的當前版本。
在你的情況中也許你應該是這樣的:
火花。sql(“”“選擇col1、col2 col3、案例當id =“123”“2022-02-16”當id =“124”“2022-02-17”結束create_date……從example_view”“”) \ .write \ .mode(覆蓋)\ .saveAsTable (“example_table”)
嗨,@Vincent能源部,
在三角洲表更新是可用的,但在引擎蓋下麵你更新檢查機關文件,這意味著每個更新都需要找到該文件,記錄存儲,然後重寫文件新版本,新文件的當前版本。
在你的情況中也許你應該是這樣的:
火花。sql(“”“選擇col1、col2 col3、案例當id =“123”“2022-02-16”當id =“124”“2022-02-17”結束create_date……從example_view”“”) \ .write \ .mode(覆蓋)\ .saveAsTable (“example_table”)