【发布时间】:2016-08-29 09:12:52
【问题描述】:
像下面的代码一样,将数据框插入配置单元表中。 hive的输出hdfs文件小文件太多。保存在蜂巢上时如何合并它们?
myDf.write.format("orc").partitionBy("datestr").insertInto("myHiveTable")
当有 100 个任务时,它会产生 100 个小文件。
在数据框上使用coalesce 是个好主意吗?
myDf.coalesce(3).write.format("orc").partitionBy("datestr").insertInto("myHiveTable")
为什么 hive 配置如下不起作用?
sqlContext.sql("set hive.merge.mapfiles=true")
sqlContext.sql("set hive.merge.sparkfiles=false")
sqlContext.sql("set hive.merge.smallfiles.avgsize=16000000")
sqlContext.sql("set hive.merge.size.per.task=256000000")
非常感谢您的帮助。
【问题讨论】:
-
创建的 100 个小文件平均有多大?
标签: hive pyspark-sql