Ume*_*cha 2 hive apache-spark parquet apache-spark-sql
嗨,我有几个Spark作业,每天处理数千个文件。文件大小可能从MB到GB。完成工作后,我通常使用以下代码保存
finalJavaRDD.saveAsParquetFile("/path/in/hdfs"); OR
dataFrame.write.format("orc").save("/path/in/hdfs") //storing as ORC file as of Spark 1.4
Run Code Online (Sandbox Code Playgroud)
Spark作业会在最终输出目录中创建大量小零件文件。据我了解,Spark为每个分区/任务创建零件文件,如果我错了,请纠正我。我们如何控制Spark创建的零件文件数量?最后,我想使用这些parquet / orc目录创建Hive表,并且听说在没有大量小文件的情况下Hive运行缓慢。请指导我是Spark的新手。提前致谢。
您可能想尝试使用DataFrame.coalesce方法来减少分区数;它返回一个具有指定数量的分区的DataFrame(每个分区在插入时成为文件)。
要增加或减少分区,您可以使用Dataframe.repartition函数。但是coalesce不会引起随机播放repartition。
| 归档时间: |
|
| 查看次数: |
9172 次 |
| 最近记录: |