我应该合并火​​花输出文件吗?

时间:2014-10-03 14:33:03

标签: apache-spark

Apache Spark通常会输出part-00XXX文件。合并它们或将它们保留在存储上是最佳做法吗? (我正在使用谷歌云存储)

2 个答案:

答案 0 :(得分:0)

我想这是一个选择,但我会拒绝,因为:

  • 如果你对大数据文件进行计算,合并并不容易,因为你将获得一个巨大的文件
  • 不同的文件可以对应RDD分区,因此您可以利用它进行进一步处理(比如只读取一些文件而不是所有文件)
  • 使用spark可以轻松进一步处理数据,因为.textfile接受通配符*来读取文件夹中的所有文本文件,因此无需合并它们

希望这能回答你的问题

答案 1 :(得分:0)

我想说合并打破了分布式计算的惯例。您可能必须从同一文件中读取并发问题。

但是如果你想进行快速分析,比如说Python的熊猫试试这个:

import org.apache.hadoop.conf.Configuration
import org.apache.hadoop.fs._

def merge(srcPath: String, dstPath: String): Unit =  {
  val hadoopConfig = new Configuration()
  val hdfs = FileSystem.get(hadoopConfig)
  FileUtil.copyMerge(hdfs, new Path(srcPath), hdfs, new Path(dstPath), false, hadoopConfig, null)
}