我通过Spark使用Hive。我的Spark代码中有一个插入分区表的查询。输入的数据量为200多GB。当Spark写入分区表时,会生成非常小的文件(文件大小仅为kb级别)。因此,现在输出的分区表文件夹中有5000多个小型kb文件。我想将它们合并成几个大的MB文件,可能是几个200MB的文件。我尝试使用Hive合并设置,但它们似乎不起作用。
'val result7A = hiveContext.sql("set hive.exec.dynamic.partition=true")
val result7B = hiveContext.sql("set hive.exec.dynamic.partition.mode=nonstrict")
val result7C = hiveContext.sql("SET hive.merge.size.per.task=256000000")
val result7D = hiveContext.sql("SET hive.merge.mapfiles=true")
val result7E = hiveContext.sql("SET hive.merge.mapredfiles=true")
val result7F = hiveContext.sql("SET hive.merge.sparkfiles = true")
val result7G = hiveContext.sql("set hive.aux.jars.path=c:\\Applications\\json-serde-1.1.9.3-SNAPSHOT-jar-with-dependencies.jar")
val result8 = hiveContext.sql("INSERT INTO TABLE partition_table PARTITION (date) select a,b,c from partition_json_table")'
以上的Hive设置适用于MapReduce Hive执行,并生成指定大小的文件。在Spark或Scala中是否有这样的选项?