我想使用Spark Sql将数据插入到现有的Hive分区镶木地板表中。
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表中,但是Spark用于写入的镶木地板的版本是1.6.0。 该版本的镶木地板文件没有为字符串数据类型字段存储最小/最大的问题,这会影响在Hive表上运行的查询的性能。 我得到以.c000结尾的实木复合地板文件
如果我直接使用
创建一个实木复合地板文件(没有配置单元表)dataframe.write.format(“ parquet”)。path(“ filepath”)
,它将创建一个版本为1.10的镶木地板文件,其中提供了字符串字段的最小值/最大值。在这里,我得到了以.snappy.parquet结尾的镶木文件
有没有一种方法可以使用spark为Hive创建版本1.10的实木复合地板文件。
Spark版本-2.4.0
配置单元版本-2.3.2
P.S。 -我不能使用saveAsTable(),因为当我希望Hive创建表时,spark为此命令创建了一个表。