我正在使用spark我必须从List的元素创建一个RDD [(Double,Double)]
我有
val list1: List[Double] = List(16.0,5.0)
当我这样做时
val rdd = sc.parallelize (Seq(list1))
我得到了RDD[List[Double]]
类型的RDD
但我想要一个RDD[(Double, Double)]
类型的RDD,我可以通过这样做来实现:
val rdd = sc.parallelize (Seq((16.0,5.0)))
所以基本上,我怎样才能在Seq()
内列出我列表中的所有元素而不进行迭代并做类似的事情:
val rdd = sc.parallelize (Seq((list1(*))))
答案 0 :(得分:0)
您要做的就是将List[Double]
成对转换为RDD[(Double, Double)]
成对的对象:
sc.paralelize(
list.sliding(2, 2)
.filter(_.size == 2)
.map(tup => (tup.head, tup.last))
)
您也可以使用.grouped(2)
代替.sliding(2, 2)
,如评论中所述。