Я хотел бы сохранить данные в фрейме Spark (v 1.3.0) в таблицу Hive с помощью PySpark.save Spark dataframe to Hive: таблица не читается, потому что «паркет не SequenceFile»
В documentation состояния:
«spark.sql.hive.convertMetastoreParquet: Если установлено значение ложно, Свечи SQL будет использовать улей SerDe для паркетных таблиц вместо встроенной поддержки.»
Глядя на Spark tutorial, это, кажется, что это свойство может быть установлено:
from pyspark.sql import HiveContext
sqlContext = HiveContext(sc)
sqlContext.sql("SET spark.sql.hive.convertMetastoreParquet=false")
# code to create dataframe
my_dataframe.saveAsTable("my_dataframe")
Однако, когда я пытаюсь запросить сохраненную таблицу в улье она возвращает:
hive> select * from my_dataframe;
OK
Failed with exception java.io.IOException:java.io.IOException:
hdfs://hadoop01.woolford.io:8020/user/hive/warehouse/my_dataframe/part-r-00001.parquet
not a SequenceFile
Как сохранить таблицу, чтобы она сразу читалась в Hive?
Вы отправили точно такой же ответ [здесь] (http://stackoverflow.com/questions/31341498/save-spark-dataframe-as-dynamic-partitioned-table-in-hive/37504196#37504196).если вы считаете, что вопрос является дубликатом, вы должны отметить его как таковой, а не повторять один и тот же ответ дважды. – Jaap
Похоже, что код для TBL_HIVE_IS_NOT_HAPPY и TBL_HIVE_IS_HAPPY, точно такой же. Я что-то упускаю? –