修复在sparksql中引发解析异常的良好配置单元sql查询

ocebsuys  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(385)

在配置单元中执行以下查询可以正常工作:

ALTER TABLE schema.the_table 
DROP IF EXISTS PARTITION (PARTITION_DATE<'2020-03-22')

分区日期是string类型,但没关系。目标是删除早于特定日期的分区。
另一方面,spark(2.1)中使用了相同的查询:

val spark = SparkSession.builder.enableHiveSupport.getOrCreate
spark.sql("""
ALTER TABLE schema.the_table 
DROP IF EXISTS PARTITION (PARTITION_DATE<'2020-03-22')
""")

引发分析异常
用户类引发异常:org.apache.spark.sql.catalyst.parser.parseexception:不匹配的输入“<”应为{'),','}(第1行,位置82)
==sql==alter table schema.the\u table drop if exists partition(partition\u date<'2020-03-22')
问题是我在哪里可以找到sparksql中必须转义的字符,有没有办法在sparksql中编写与hive相同的查询?

r1wp621o

r1wp621o1#

由于已知的错误,从spark 3.0版起,无法使用spark.sql删除配置单元分区,并且当前正在3.1.0版中对其进行修复。检查jiraSparkjira。

相关问题