Spark:错误:值拆分不是org.apache.spark.rdd.RDD [String]的成员

时间:2016-07-01 05:59:33

标签: scala apache-spark split rdd

我试图执行的代码段:

val textfile = sc.textFile("small_file.txt")
            val arr = textfile.split(",")
            for (v <- arr) {
                println(v)

我收录的套餐:

import org.apache.spark.SparkContext
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext._
import org.apache.spark.rdd.RDD._
import org.apache.spark.rdd.RDD

我得到的错误:

<console>:54: error: value split is not a member of org.apache.spark.rdd.RDD[String]
                val arr = textfile.split(",")
                               ^

任何领导都会受到赞赏!!

2 个答案:

答案 0 :(得分:3)

它清楚地表明分裂不是RDD的方法。因此,如果你想在“,”的基础上拆分文本文件中的数据,那么你必须使用RDD的map函数。

textfile.map(line=>line.split(","))

有关详细信息,请参阅此处的字数统计示例。

http://spark.apache.org/examples.html

答案 1 :(得分:-4)

 val textfile = sc.textFile("small_file.txt") 

变量textfile是RDD [String]而不是字符串,这就是为什么你得到异常,因为split方法不是RDD [String]的成员,所以如果你必须打印textfile的内容你可以使用

textfile.foreach(println) (shorter version)

textfile.foreact(x => println(x)) (longer version)

由于