您的位置:首页 > 运维架构 > Apache

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

2017-06-01 11:01 701 查看
今天写了一行代码,感觉很简单啊,怎么报错呢,后来一看是一个超级低级错误, 大小写搞错了,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)}


换行会打印出来



学习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即可使用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐