繁体   English   中英

在Spark中计算Hive表的统计信息

[英]To Compute statistics of Hive table in Spark

我创建了一个DataFrame来加载CSV文件,并创建了一个临时表来获取列统计信息。

但是,当我尝试运行ANALYZE命令时,我面临以下错误。相同的Analyze命令成功运行在Hive中。

Spark版本:1.6.3

df = sqlContext.read
.format("com.databricks.spark.csv")
.option("header", "true") 
.option("mode", "DROPMALFORMED")
.load("/bn_data/bopis/*.csv")

// To get the statistics of columns
df.registerTempTable("bopis")

val stat=sqlContext.sql("analyze table bopis compute statistics for columns").show()

错误:

    java.lang.RuntimeException: [1.1] failure: ``with'' expected but identifier analyze found

analyze table bopis compute statistics for columns
^

请告诉我们如何使用Spark实现列统计信息

谢谢。!

如果使用FOR COLUMNS选项,则必须传递列名列表,请参阅https://docs.databricks.com/spark/latest/spark-sql/language-manual/analyze-table.html

在任何情况下,即使您这样做,也会出现错误,因为您无法在临时表上运行计算统计信息。 (你会Table or view 'bopis' not found in database 'default'一个Table or view 'bopis' not found in database 'default' )。

您必须通过df.write.saveAsTable("bopis_hive")sqlContext.sql("CREATE TABLE bopis_hive as SELECT * from bopis")创建一个完整的Hive表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM