三角洲湖更新查询失败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。


这篇文章有用吗?