Java Spark Streaming saveastextfile操作,什么是part0000文件

Java Spark Streaming saveastextfile操作,什么是part0000文件,java,apache-spark,spark-streaming,Java,Apache Spark,Spark Streaming,当我运行saveAsTextFiles(“前缀”、“后缀”);对于JavadStream,我发现创建了多个部件文件 我想了解每个零件文件意味着什么 这些文件具有以下命名,/part0000、part0001、part0002 用于创建用于输出这些文件的基于行的RDD平面图的代码 JavaDStream<String> words = lines.flatMap(new FlatMapFunction<String, String>() { @Override pu

当我运行saveAsTextFiles(“前缀”、“后缀”);对于JavadStream,我发现创建了多个部件文件

我想了解每个零件文件意味着什么

这些文件具有以下命名,/part0000、part0001、part0002

用于创建用于输出这些文件的基于行的RDD平面图的代码

JavaDStream<String> words = lines.flatMap(new FlatMapFunction<String, String>() {
  @Override
  public Iterable<String> call(String x) {
    return Lists.newArrayList(NEWSPACE.split(x));
  }
});
JavaDStream words=lines.flatMap(新的flatMap函数(){
@凌驾
公共Iterable调用(字符串x){
returnlists.newArrayList(NEWSPACE.split(x));
}
});

我的假设是,这将创建一个RDD的数据流,每个RDD=1行,因此应该创建一个零件文件。

数据流是一段时间内RDD的集合。每个RDD由分布在Spark Worker集群中的数据分区组成

在本图中,每条彩色线表示一个数据流。当它在rdd中有界时,它是rdd的一个分区。RDD由在每个时间间隔收集的数据组成,这里用蓝色框表示

DStream.saveAsTextFile将为以间隔(bluc框)创建的RDD创建一个文件。每个零件文件对应于由该RDD(蓝色blox中的彩色线)限定的彩色线片段

在分布式文件系统(如hdfs)中,fs将抽象出分区,为您提供一个逻辑文件,或每个RDD一个文件

当您使用本地文件系统时,这些零件文件将如您所看到的那样显式显示


(*)Andy Petrella和Gerard Maas(我)在Devxx 2014年的Spark演示会上为该图像颁奖。

很抱歉,你能进一步解释吗?文件夹对应什么,零件文件对应什么?你是说每个部分文件对应于数据流间隔中单个rdd的输出吗?我想我现在更了解它了,你能解释一下数据流和rdd的持续时间之间的区别吗?也就是说,当我们设置流上下文时,它是否设置了redbox/或RDD的持续时间?蓝盒(RDD)和数据流批处理(红盒)的大小(时间)是如何设置的?每个间隔都会产生一个RDD,由“batchDuration”(蓝盒)定义。只要流媒体程序运行,数据流就会持续(红线……可能是小时、天、年……)如果数据在单个本地节点上运行,那么部分文件意味着什么?(这是我的情况)。。i、 我只有一个本地节点,难道我不应该只生成一个零件文件吗?即使在我的本地实例中,我也看到了一些。在本地模式下,您仍然有几个并行处理任务的内核。rdd的每个分区将成为1部分文件。只需要一个文件?进行rdd合并(1)。请注意,这将阻止任何并行处理。