从多个火花工人保存镶木地板格式

时间:2015-10-01 21:56:57

标签: apache-spark yarn parquet

我的工作需要将结果保存在所有工作节点的镶木地板/ avro格式中。我可以为每个单独的分区执行单独的镶木地板文件,并将所有生成的文件作为单个表读取吗?或者有更好的方法来解决这个问题吗? 输入分为96个分区,结果需要保存在HDFS上。当我尝试将其保存为文件时,它创建了超过一百万个小文件。

1 个答案:

答案 0 :(得分:0)

在您致电repartition之前,您可以在所需的分区数量之前执行coalesce(或write,如果您总是需要更少的分区)。然后,您的数据将写入相同数量的文件。如果要读入数据,只需指向包含文件的文件夹,而不是指向特定文件。像这样:

sqlContext.read.parquet("s3://my-bucket/path/to/files/")