首页 文章

PySpark HiveContext错误

提问于
浏览
2

我正在尝试使用PySpark使用以下命令刷新表分区 . 我可以发出任何其他SQL命令,但 MSCK REPAIR TABLE 导致我的问题

Code:

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;")

Error:

文件“/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“,第300行,在get_return_value py4j.protocol.Py4JJavaError:调用o43.sql时发生错误 . :org.apache.spark.sql.AnalysisException:';'缺少EOF在'10'附近;第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)

2 回答

  • 0

    我目前正在使用Spark 1.6,以下声明正在帮我更新带有hive Metastore的分区 .

    sqlContext.sql("alter table schema.table_name add partition (key = value )")

  • 0

    您可以尝试以下命令:

    ALTER TABLE table_name ADD PARTITION
    

相关问题