切片列中的几个部分Spark(1.5.2)-Scala

时间:2017-04-03 11:47:04

标签: scala apache-spark

我有一个RDD大于22列(因此,我无法将其转换为Dataframe以进行过滤)有10列,我想获得第二个数据帧,列3到4以及列范围为了获得7到10的范围,我使用切片函数,方法如下:

var aux = rdd.map(_.slice(7, 10))

尝试以3到4的间隔加入此间隔时出现问题。我看到切片方法只接受一个范围。有没有办法跳过这个限制,以便在一个变量中获得两个范围?

2 个答案:

答案 0 :(得分:1)

我不了解表现,但你可以这样做:

rdd.map(l => ((3 to 4) ++ (7 to 10)).map(l(_)))

答案 1 :(得分:0)

rdd.map(row => row.slice(3, 4) ++ row.slice(7, 10))