我不确定如何用尽可能短的句子来描述这一点,但无论如何我都会尝试。假设我在一个名为data的变量中有一个这种格式的 RDD
(a,b,c)
b 和 c 是先前 RDD 转换产生的数组。基于某些条件,我想将 RDD 转换为仅从 b 或 c 获取 1 列。我在声明临时变量来存储 rdd 时遇到问题。
val data = sc.textFile("1.txt").map(_.split(",",-1))
//var new_data:RDD= null??? what data type should i use??
if(x ==1){
new_data = data.map{ (a,b,c) => ( b(x) ) }
}else if( x==2 ){
new_data = data.map{ (a,b,c) => ( c(x) ) }
}
//several more if statement here similar to the two above
//need to use new_data here
如果我使用val在if语句中声明 new_data ,它将超出 if 语句的范围。我尝试使用 var,但我不知道如何初始化它。我尝试使用MappedRDD 和 RDD 类型的var,但我似乎无法将映射操作的值分配给它。