[英]Error with map & flatMap on RDDs in Eclipse with Spark
我终于将Eclipse设置为能够在工作表中使用Spark。 我的构建路径中有Scala 2.10.5库,还包含以下jar:spark-assembly-1.4.1-hadoop2.6.0.jar
我可以在RDD上做大多数事情,除了map和flatMap。 例如,给定此数据(sampleData.txt):
0,1 0 0
0,2 0 0
1,0 1 0
1,0 2 0
2,0 0 1
2,0 0 2
以下代码给出了“宏尚未扩展”错误。
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.rdd.RDD
import org.apache.spark.rdd.RDD._
object sparkTestWS {
val conf = new SparkConf().setMaster("local[*]").setAppName("My App")
val sc = new SparkContext(conf)
// start model section
val data = sc.textFile("sampleData.txt")
val dataM = data.map(x => x)
}
我查看了这个宏错误,有一篇帖子说它与隐式类型有关,并且将(或现在已被)Scala 2.11修复,但是Spark在Scala 2.10上...
我还想知道是否可能需要使用这些函数显式导入这些类,因为有一篇帖子说需要隐式导入一些隐式导入,但是到目前为止,我还无法弄清楚要导入的内容。 我已经尝试过scala.Array,scala.immutable。 org.apache.spark.rdd。 等
有任何想法吗? 还有其他文章指出人们正在将Spark与Eclipse一起使用,因此必须有一种方法可以使Spark在Eclipse中工作(尽管这些文章并没有说明他们是否在使用Scala工作表。)我对Spark还是很陌生而且对于Scala来说还不算什么新鲜事物,因此任何建议都将不胜感激。 我真的很喜欢Scala工作表,因此,如果可能的话,我希望所有这些工作都可以进行。 谢谢!
您的代码对我来说看起来不错。
您的问题可能出在工作表本身上。 它们很不错,但是基于REPL,它们与编译的类并不完全相同,它们还做了很多额外的事情以使代码流动(例如重新定义相同的变量),每个REPL命令都单独包装作用域,这可能会以微妙的方式使隐式,导入等混乱。
如果您是Scala和Spark的新手,我建议您暂时使用编译的类并推迟工作表,直到您更好地掌握基础知识为止。
也就是说,您尝试过火花壳吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.