我有一个RDD叫
JavaPairRDD<String, List<String>> existingRDD;
现在我需要将existingRDD
初始化为空,这样当我得到实际的RDD时,我就可以与existingRDD
进行联合。除了将existingRDD
初始化为null之外,我如何将其初始化为空RDD?下面是我的代码:
JavaPairRDD<String, List<String>> existingRDD;
if(ai.get()%10==0)
{
existingRDD.saveAsNewAPIHadoopFile("s3://manthan-impala-test/kinesis-dump/" + startTime + "/" + k + "/" + System.currentTimeMillis() + "/",
NullWritable.class, Text.class, TextOutputFormat.class); //on worker failure this will get overwritten
}
else
{
existingRDD.union(rdd);
}
7条答案
按热度按时间7bsow1i61#
要在Java中创建一个空RDD,您只需执行以下操作:
我相信你知道如何使用泛型,否则,对于你的情况,你需要:
您也可以使用
mapToPair
方法将JavaRDD
转换为JavaPairRDD
。在Scala中:
dgsult0t2#
上面的语句将创建空的RDD,类型为
String
SparkContext类:
获取没有分区或元素的RDD
vshtjzan3#
在scala中,我使用“parallelize”命令。
rvpgvaaj4#
@eliasah的回答非常有用,我提供了创建空对RDD的代码。考虑一个需要创建空对RDD(key,value)的场景。下面的scala代码演示了如何创建空对RDD,key为String,value为Int。
RDD将按如下方式创建:
dfddblmv5#
在Java中,创建空RDD有点复杂。我尝试使用scala.reflect.classTag,但它也不起作用。经过多次测试,工作的代码更加简单。
vfh0ocws6#
在Java中,创建空对RDD如下:
vsnjm48y7#
你可以试试下面的代码片段: