val res = three.filter(_.trim().length > 0).map(num => (num.trim.toInt, "")).partitionBy(new HashPartitioner(1)).sortByKey().map(t => { idx += 1 (idx, t._1) }).collect.foreach(x => println(x._1 + "%t" + x._2))其中trim标红报错的原因
时间: 2023-06-17 14:02:59 浏览: 64
2023年全国计算机二级等级考试VFP知识点提纲.docx
这段代码中的 `trim()` 方法是 String 类的一个方法,用于去除字符串前后的空格。但是在这里,它被用于一个没有类型声明的变量 `three` 上,因此编译器无法推断出其类型,也就无法确定其是否有 `trim()` 方法。
解决方法是在 `three` 变量的类型声明中加上类型信息,例如:
```
val three: RDD[String] = sc.parallelize(Seq(" 1 ", " 2 ", " 3 ", " ", " 4 "))
```
这样就可以确保编译器知道 `three` 是一个 `RDD[String]` 类型的对象,其中每个元素都是一个字符串,可以调用 `trim()` 方法。
阅读全文