问题
当您执行一个三角洲湖更新,删除,或合并查询使用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。