微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 spark sql 的 aws 胶水分区

如何解决使用 spark sql 的 aws 胶水分区

使用 spark sql frm 胶水元数据删除分区会引发问题,而相同的代码在 hive shell 中工作。

**Hive shell**
hive> alter table prc_db.detl_stg drop IF  EXISTS partition(prc_name="dq") ;
OK
Time taken: 1.013 seconds


**spark shell**
spark.sql(''' alter table prc_db.detl_stg drop IF  EXISTS partition(prc_name="dq") ''') ;

Error message:
py4j.protocol.Py4JJavaError: An error occurred while calling o60.sql.
: org.apache.spark.sql.AnalysisException: org.apache.hadoop.hive.ql.Metadata.HiveException: InvalidobjectException(message:Unsupported expression (Service: AWSglue; Status Code: 400; Error Code: InvalidInputException

解决方法

如果您打算从 spark shell 中删除分区(Glue Catalogue),则必须在分区名称中添加“”。例如:spark.sql(""" alter table reinvent.newtesttable drop partition ( part= " 'part2' " ) """) 对我来说是 spark.sql(''' alter table prc_db.detl_stg drop IF EXISTS partition(prc_name="'dq'") ''')

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。