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

δ表合並語句是不接受廣播提示

Chalki
新的貢獻者三世

我有一個這樣的聲明pyspark:

target_tbl.alias \(“目標”)

.merge (stage_df.hint(“廣播”).alias(“源”),merge_join_expr) \

.whenMatchedUpdateAll () \

.whenNotMatchedInsertAll () \

.whenNotMatchedBySourceDelete () \

. execute ()

不接受廣播提示。我得到如下:

加入提示忽略:這個查詢(策略=廣播)的加入暗示不與任何連接操作符,因此將被忽略。調查查詢提示是否正確放置。

在這個視頻:

https://www.youtube.com/watch?v=o2k9PICWdx0&t=797s

據說,這種方法是有效的

1接受解決方案

接受的解決方案

匿名
不適用

@Nikolay Chalkanov:

錯誤消息表明,加入提示不與任何連接操作符。這可能發生,如果提示不正確放置,或者如果沒有連接操作符的查詢可以利用提示。

在您發布的代碼,似乎你使用合並方法執行join操作。根據三角洲湖文檔,合並方法不支持廣播提示:

https://docs.delta.io/latest/delta-update.html連接

因此,預計提示被忽略。

你提到的視頻可能會使用不同的方法來執行連接操作,支持廣播提示。你可以嚐試使用連接方法而不是合並,和廣播提示是否接受:

. join (stage_df.hint target_tbl.alias \(“目標”)(“廣播”).alias(“源”),join_expr,“內部”)\ .write.format(“δ”).mode .save(“覆蓋”)(“output_delta”)

請記住,使用廣播提示可以有性能影響,它並不總是最好的選擇根據你的數據的大小和可用的資源。

在原帖子查看解決方案

2回答2

匿名
不適用

@Nikolay Chalkanov:

錯誤消息表明,加入提示不與任何連接操作符。這可能發生,如果提示不正確放置,或者如果沒有連接操作符的查詢可以利用提示。

在您發布的代碼,似乎你使用合並方法執行join操作。根據三角洲湖文檔,合並方法不支持廣播提示:

https://docs.delta.io/latest/delta-update.html連接

因此,預計提示被忽略。

你提到的視頻可能會使用不同的方法來執行連接操作,支持廣播提示。你可以嚐試使用連接方法而不是合並,和廣播提示是否接受:

. join (stage_df.hint target_tbl.alias \(“目標”)(“廣播”).alias(“源”),join_expr,“內部”)\ .write.format(“δ”).mode .save(“覆蓋”)(“output_delta”)

請記住,使用廣播提示可以有性能影響,它並不總是最好的選擇根據你的數據的大小和可用的資源。

Vidula_Khanna
主持人
主持人

嗨@Nikolay Chalkanov

謝謝你發布你的問題在我們的社區!我們很高興幫助你。

幫助我們為您提供最準確的信息,請您花一些時間來回顧反應和選擇一個最好的回答了你的問題嗎?

這也將有助於其他社區成員可能也有類似的問題在未來。謝謝你的參與,讓我們知道如果你需要任何進一步的援助!

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

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

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

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

Baidu
map