Я хочу вставить данные в уже существующую многораздельную паркетную таблицу Hive с помощью Spark Sql.
dataframe.write.mode (SaveMode.Append) .insertInto ("hive_parquet_part_table")
Моя таблица Hive:
CREATE TABLE hive_parquet_part_table(
abc string,
def string
)
PARTITIONED BY (part1 string, part2 string)
STORED AS PARQUET
LOCATION 'alluxio://localhost:19998/'
TBLPROPERTIES ("parquet.compress"="SNAPPY");
Я могу записать данные в таблицу Hive, но для записи используется паркет версии 1.6.0.Проблема в файлах паркета в этой версии не хранит мин / макс для полей типа строковых данных, которые могут повлиять на производительность запросов, выполняемых в таблице Hive.Я получаю файлы паркета, заканчивающиеся на .c000
Если я непосредственно создаю файл паркета (без таблицы кустов), используя
dataframe.write.format ("parquet"). Path ("filepath")
, он создает файл паркета с версией 1.10, которая обеспечивает мин / макс для строковых полей. Вот, я получаю файлы паркета, заканчивающиеся на .snappy.parquet
Есть ли способ, которым я могу создавать файлы паркета с версией 1.10 для Hive, используя spark.
Версия Spark - 2.4.0
Версия Hive - 2.3.2
PS - я не могу использовать saveAsTable (), потому что spark создает таблицу для этой команды, пока я хочутаблица, созданная Hive.