scala - 错误 : org. apache.spark.rdd.RDD[(String,Int)] 不带参数

标签 scala apache-spark rdd

age.foreach(println)

1,5
2,25
3,30

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

所以上述数据的结果应该是

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)] 不接受参数

请帮我解决这个问题。

最佳答案

元组元素不能像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+"))
)

关于scala - 错误 : org. apache.spark.rdd.RDD[(String,Int)] 不带参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40971953/

相关文章:

python - (pyspark数据帧跨多个ID重新分区

scala - 如何在 Scala 的 RddPair<K,Tuple> 中使用 reduceByKey

hadoop - 使用 Spark 读取 S3 文件时出现 NullPointerException

apache-spark - 从本地二进制文件保存并加载 Spark RDD - 最小工作示例

python - 如何将三个 RDD 连接到一个元组中?

scala - .get(x)行为从何而来?

scala - Hadoop-按行数拆分文件

java - hibernate 未找到 hibernate.cfg.xml 文件

scala - 为什么这个迭代器无限循环?

python - 与 .join() pyspark 相反