繁体   English   中英

获取列表的所有元素而无需迭代scala

[英]Get all elements of List without iteration scala

我正在火花中工作,我必须根据List的元素创建一个RDD [(Double,Double)]

我有

val list1: List[Double] = List(16.0,5.0)

当我做

val rdd = sc.parallelize (Seq(list1))

我得到了RDD RDD[List[Double]]类型的RDD,但是我想要通过执行以下操作可以实现RDD[(Double, Double)]类型的RDD[(Double, Double)]

val rdd = sc.parallelize (Seq((16.0,5.0)))

因此,基本上,我如何在Seq()列出列表中的所有元素而不进行迭代,并执行类似的操作:

val rdd = sc.parallelize (Seq((list1(*))))

您要做的就是将List[Double] RDD[(Double, Double)]成对地转换为RDD[(Double, Double)]对,您可以使用:

sc.paralelize(
    list.sliding(2, 2)
        .filter(_.size == 2)
        .map(tup => (tup.head, tup.last))
)

您也可以使用.grouped(2)代替注释中提到的.sliding(2, 2)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM