错误:org.apache.spark.rdd.RDD [(String,Int)]不接受参数

时间:2016-12-05 10:22:51

标签: scala apache-spark rdd

age.foreach(的println)

1,5
2,25
3,30

年龄有身份和年龄。现在我必须创建像     如果(年龄> = 1&& age< 10)“1-10”     否则如果(年龄> = 10&& age< 20)“10-20”     否则“30 +”

因此上述数据的结果应为

1,1 1-10

2,10-20

3,30 +

Val ager = age.map(x => (x(0),(If(x(1)>=1 && x(1)<10) "1-         10"
Else if(x(1) >=10 && x(1)<20) "10-20"
Else "30+")))

我收到以下错误: 错误:org.apache.spark.rdd.RDD [(String,Int)]不带参数

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

元组元素不是x(0),而是x._1

这应该有效:

val ager = age.map(x =>
  (x._1, (if (x._2 >= 1 && x._2 < 10) "1-         10"
  else if (x._2 >= 10 && x._2 < 20) "10-20"
  else "30+"))
)