如何在Spark中为现有RDD添加更多RDD?

时间:2016-03-21 09:39:57

标签: java apache-spark spark-streaming

我有一个RDD,想要为它添加更多RDD。我怎么能在Spark中做到这一点? 我有如下代码。我想从我的dStream中返回RDD。

CFByteOrderLittleEndian

我没有找到关于Apache Spark提供的JavaDStream类的wrapRDD方法的文档。

2 个答案:

答案 0 :(得分:2)

由于RDD 不可变,您可以使用sparkContext.parallize创建新的RDD并返回新的RDD。

List<Object> objectList = new ArrayList<Object>;
objectList.add("your content");

JavaRDD<Object> objectRDD = sparkContext.parallize(objectList);
JavaRDD<Object> newRDD = oldRDD.union(objectRDD);

答案 1 :(得分:1)

您可以使用JavaStreamingContext.queueStream并填入Queue<RDD<YourType>>

public JavaInputDStream<Object> FillDStream() {
    LinkedList<RDD<Object>> rdds = new LinkedList<RDD<Object>>();
    rdds.add(context.sparkContext.emptyRDD());
    rdds.add(context.sparkContext.emptyRDD());

    JavaInputDStream<Object> filledDStream = context.queueStream(rdds);
    return filledStream;
}