問題
當您執行一個三角洲湖更新,刪除,或合並查詢使用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。