更改表时如何解决Spark sql错误不匹配的输入

问题描述 投票:0回答:1

我正在尝试使用以下sql命令从配置单元表中删除一些分区:

 alter table db.t1 drop if exists partition (date<'2019-10-03') 

在蜂巢中效果很好:

 hive> alter table db.t1 drop if exists partition (date<'2019-10-03');
 OK
 Time taken: 0.737 seconds

但是当我使用完全相同的sql命令使用PySpark时:

 spark.sql("alter table db.t1 drop if exists partition (date<'2019-10-03')")

存在以下错误:

>>> spark.sql("alter table db.t1 drop if exists partition (date<'2019-10-03')")
Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
   File "/usr/lib/spark/python/pyspark/sql/session.py", line 710, in sql
   return DataFrame(self._jsparkSession.sql(sqlQuery), self._wrapped)
   File "/usr/lib/spark/python/lib/py4j-0.10.7-src.zip/py4j/java_gateway.py", line 1257, in 
   __call__
   File "/usr/lib/spark/python/pyspark/sql/utils.py", line 73, in deco
   raise ParseException(s.split(': ', 1)[1], stackTrace)
pyspark.sql.utils.ParseException: u"\nmismatched input '<' expecting {')', ','}(line 1, pos 92)\n\n== SQL ==\nalter table db.t1 drop if exists partition (date<'2019-10-03')\n--------------------------------------------------------------------------------------------^^^\n"

这些是集群上的引擎版本:

PYSARPK版本:2.7.13

HIVE版本:2.3.6

任何帮助,指导或评论都表示赞赏。

apache-spark pyspark hive apache-spark-sql pyspark-sql
1个回答
0
投票

尝试以下Spark的代码语句,似乎问题是带有特殊字符的,这里只是试图转义特殊字符,

© www.soinside.com 2019 - 2024. All rights reserved.