拼写错误:value countBykey is not a member of org.apache.spark.rdd.RDD[(String, Int)]

今天写了一行代码,感觉很简单啊,怎么报错呢,后来一看是一个超级低级错误, 大小写搞错了,countByKey写成了countBykey,所以Spark的算子大小写一定不要搞错,有可能会报上面的错误。

scala> sc.textFile("E:\\eventype").map(_.split("\\|")).map(x=>(x(0)+"|"+x(1),1)).countBykey()

:23: error: value countBykey is not a member of
org.apache.spark.rdd.RDD[(String, Int)]
sc.textFile(“E:\eventype”).map(_.split(“|”)).map(x=>(x(0)+”|”+x(1),1)).countBykey()
^

正确的应该是

scala> val eventRDD = sc.textFile("E:\\eventype").map(_.split("\\|")).map(x=>(x(0)+"|"+x(1),1)).countByKey().map{ line =>
val cell= line._1.split("\\|")(0)
val eventype=line._1.split("\\|")(1)
val count = line._2
(cell,eventype,count)
}

由于在windows下的spark-shell换行可能会有写问题,可以写到一行

scala> val eventRDD = sc.textFile("E:\\eventype").map(_.split("\\|")).map(x=>(x(0)+"|"+x(1),1)).countByKey().map{line => val cell= line._1.split("\\|")(0);val eventype=line._1.split("\\|")(1);val count = line._2;(cell,eventype,count)}

换行会打印出来
拼写错误:value countBykey is not a member of org.apache.spark.rdd.RDD[(String, Int)]_第1张图片

学习scala和spark编程,推荐在Windows下简单配置,最快的速度去学习。只要下载一个Spark的包解压,设置对应的SPARK_HOME和Path环境变量,就可以直接使用cmd或者PowerShell试验你写的程序了,我是ultraedit写好的,如果用IDE可能不会有上面的问题,各有利弊。

我的配置

SPARK_HOME=F:\spark-1.5.2-bin-hadoop2.3
Path=%SPARK_HOME%\bin;

打开Power Shell,输入spark-shell即可使用。

你可能感兴趣的:(Spark)