Вычислить статистику таблицы Hive в Spark - PullRequest
0 голосов
/ 21 марта 2019

Я создал DataFrame для загрузки CSV-файлов и создал временную таблицу для получения статистики по столбцам.

Однако, когда я пытаюсь выполнить команду 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

Спасибо.!

1 Ответ

0 голосов
/ 21 марта 2019

Если вы используете опцию FOR COLUMNS, вам нужно передать список имен столбцов, см. https://docs.databricks.com/spark/latest/spark-sql/language-manual/analyze-table.html

В любом случае, даже если вы это сделаете, вы получите ошибку, потому что вы не можете запустить статистику вычислений для временной таблицы. (вы получите Table or view 'bopis' not found in database 'default').

Вам нужно будет создать полноценный стол Hive, либо через df.write.saveAsTable("bopis_hive"), либо sqlContext.sql("CREATE TABLE bopis_hive as SELECT * from bopis")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...