我试图使用以下命令使用PySpark刷新表分区。我可以发出任何其他SQL命令,但是MSCK REPAIR TABLE给我带来了问题。
代码:
conf = SparkConf().setAppName("PythonHiveExample")\
.set("spark.executor.memory", "3g")\
.set("spark.driver.memory", "3g")\
.set("spark.driver.cores", "2")\
.set("spark.storage.memoryFraction", "0.4")
sc = SparkContext(conf=conf)
sqlContext = HiveContext(sc)
sqlContext.sql("MSCK REPAIR TABLE testdatabase.testtable;")错误:
文件"/usr/hdp/2.3.0.0-2557/spark/python/pyspark/sql/context.py",行488,在sql返回DataFrame(self._ssql_ctx.sql(sqlQuery),self)文件"/usr/hdp/2.3.0.0-2557/spark/python/lib/py4j-0.8.2.1-src.zip/py4j/java_gateway.py",行538中,在"/usr/hdp/2.3.0.0-2557/spark/python/lib/py4j-0.8.2.1-src.zip/py4j/protocol.py",call文件第300行中,在get_return_value py4j.protocol.Py4JJavaError中:调用o43.sql时发生了错误。::org.apache.spark.sql.AnalysisException:在';‘近’10‘处缺少EOF;第1行pos 41
NewError:
py4j.protocol.Py4JJavaError: An error occurred while calling o43.sql.
: org.apache.spark.sql.AnalysisException: missing EOF at 'MSCK' near 'testdatabase'; line 1 pos 17
at org.apache.spark.sql.hive.HiveQl$.createPlan(HiveQl.scala:254)
at org.apache.spark.sql.hive.ExtendedHiveQlParser$$anonfun$hiveQl$1.apply(ExtendedHiveQlParser.scala:41)
at org.apache.spark.sql.hive.ExtendedHiveQlParser$$anonfun$hiveQl$1.apply(ExtendedHiveQlParser.scala:40)
at scala.util.parsing.combinator.Parsers$Success.map(Parsers.scala:136)
at scala.util.parsing.combinator.Parsers$Success.map(Parsers.scala:135)
at scala.util.parsing.combinator.Parsers$Parser$$anonfun$map$1.apply(Parsers.scala:242)
at scala.util.parsing.combinator.Parsers$Parser$$anonfun$map$1.apply(Parsers.scala:242)发布于 2016-06-12 04:58:23
我目前正在使用Spark1.6,下面的语句正在为我更新带有蜂窝转移的分区。
sqlContext.sql("alter table schema.table_name add partition (key = value )")
发布于 2017-12-22 10:13:43
您可以尝试以下命令:
ALTER TABLE table_name ADD PARTITION https://stackoverflow.com/questions/33008437
复制相似问题