繁体   English   中英

带有Spark的Eclipse中RDD上的map&flatMap错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM