Я пытаюсь подключить Spark 2.4 к Hive Metastore 3 для каталогизации файлов ORC на S3.
Конфигурация искры:
sparkConf
.set("spark.sql.catalogImplementation", "hive")
.set("hive.metastore.uris", thrift://metastore:9083)
.set("spark.sql.warehouse.dir", "s3:/data")
Искровой код:
input
.write()
.mode(SaveMode.Overwrite)
.format("orc")
.option("path", "s3:/data/table")
.saveAsTable("table");
Spark может подключиться и создать таблицу в метастазах, но она не создается должным образом.
Это схема таблицы в каталоге:
CREATE TABLE hive.default.table (
col array(varchar),
date integer
) WITH (
external_location = 'file:/user/hive/warehouse/table-__PLACEHOLDER__',
format = 'SEQUENCEFILE',
partitioned_by = ARRAY['date']
)
external_location
неверно, нет четкой схемы (столбцы), а таблица format
неверна.
Также у меня есть это предупреждение, я не уверен, что это связано с проблемой:
Could not persist default.table in a Hive compatible way. Persisting it into Hive metastore in Spark SQL specific format.
Кто-то мог работать с metastore 3 таким образом?
Я знаком с https://stackoverflow.com/a/53065525/3276980 и предпочитаю использовать saveAsTable