Таблица Hive, созданная с помощью Spark (pyspark), недоступна из Hive.
df.write.format("orc").mode("overwrite").saveAsTable("db.table")
Ошибка при доступе из Hive:
Ошибка: java.io.IOException: java.lang.IllegalArgumentException: bucketId вне диапазона: -1 (состояние =, код = 0)
Таблица успешно создается в Hive и может читать эту таблицу обратно в искре.Доступны метаданные таблицы (в Hive) и файл данных в каталоге таблицы (в hdfs).
TBLPROPERTIES таблицы Hive:
'bucketing_version'='2',
'spark.sql.create.version'='2.3.1.3.0.0.0-1634',
'spark.sql.sources.provider'='orc',
'spark.sql.sources.schema.numParts'='1',
Я также попытался создать таблицу с другими обходными путями, но получилошибка при создании таблицы:
df.write.mode("overwrite").saveAsTable("db.table")
ИЛИ
df.createOrReplaceTempView("dfTable")
spark.sql("CREATE TABLE db.table AS SELECT * FROM dfTable")
Ошибка:
AnalysisException: u'org.apache.hadoop.hive.ql.metadata.HiveException: MetaException (сообщение: Таблица default.src не прошла строгие проверки управляемой таблицы по следующей причине: таблица помечена как управляемая таблица, но не является транзакционной.); '
Сведения о версии стека:
Spark2.3
Hive3.1
Платформа данных Hortonworks HDP3.0