三角洲湖更新查詢失敗IllegalState例外

學習如何解決一個問題與三角洲湖更新、刪除或合並使用Python udf的查詢。

寫的亞當Pavlacka

去年發表在:2022年5月10日

問題

當您執行一個三角洲湖更新,刪除,或合並查詢使用Python udf的任何轉換,不能用以下例外:

AWS

. lang。UnsupportedOperationException:方式錯誤的SQL語句:IllegalStateException:文件(s3a: / / xxx / table1)中被重寫未找到候選人文件:s3a: / / xxx /表/部分- 00001 - 39 - cae1bb - 9406 - 49 - d2 - 99 - fb - 8 - c865516fbaa c000.snappy.parquet
刪除

Azure

. lang。UnsupportedOperationException:方式錯誤的SQL語句:IllegalStateException:文件(adl: / / xxx / table1)中被重寫未找到候選人文件:adl: / / xxx /表/部分- 00001 - 39 - cae1bb - 9406 - 49 - d2 - 99 - fb - 8 - c865516fbaa c000.snappy.parquet
刪除

版本

這個問題發生在磚運行時5.5甚至更低。

導致

取決於內部三角洲湖input_file_name ()等操作功能更新,刪除,合並input_file_name ()返回一個空值,如果你在使用它選擇聲明,評估一個Python UDF。更新調用選擇內部,然後無法返回文件名和導致錯誤。這個錯誤不發生與Scala udf。

解決方案

你有兩個選擇:

  • 使用磚運行時的6.0或以上,包括解決這個問題:(火花- 28153)
  • 如果你不能使用磚運行時的6.0或以上,使用Scala udf代替Python udf。


這篇文章有用嗎?