Apache spark Kotlin和Spark-SAM问题
也许我正在做一些不太受支持的事情,但我真的很想在学习ApacheSpark时使用Kotlin 这是我试图运行的Scala代码示例。Apache spark Kotlin和Spark-SAM问题,apache-spark,kotlin,Apache Spark,Kotlin,也许我正在做一些不太受支持的事情,但我真的很想在学习ApacheSpark时使用Kotlin 这是我试图运行的Scala代码示例。flatMap()接受SAM类型: val conf = new SparkConf().setAppName("wordCount") val sc = new SparkContext(conf) val input = sc.textFile(inputFile) val words = input.flatMap(line => line.split("
flatMap()
接受SAM类型:
val conf = new SparkConf().setAppName("wordCount")
val sc = new SparkContext(conf)
val input = sc.textFile(inputFile)
val words = input.flatMap(line => line.split(" "))
这是我在科特林的尝试。但它在第四行有一个汇编问题:
val conf = SparkConf().setMaster("local").setAppName("Line Counter")
val sc = SparkContext(conf)
val input = sc.textFile("C:\\spark_workspace\\myfile.txt",1)
val words = input.flatMap{ s:String -> s.split(" ") } //ERROR
当我将鼠标悬停在上面时,会出现以下编译错误:
我是否在做任何不合理或不受支持的事情?我也没有看到任何关于使用lambdas自动完成的建议:(
啊,我想出来了。我知道有一种方法,因为Spark同时支持Java和Scala。解决这个问题的关键是使用
JavaSparkContext
而不是基于Scala的SparkContext
由于某些原因,Scala和Kotlin并不总是与SAM转换相处融洽
fun main(args: Array<String>) {
val conf = SparkConf().setMaster("local").setAppName("Line Counter")
val sc = JavaSparkContext(conf)
val input = sc.textFile("C:\\spark_workspace\\myfile.txt",1)
val words = input.flatMap { it.split(" ") }
}
fun main(args:Array){
val conf=SparkConf().setMaster(“本地”).setAppName(“行计数器”)
val sc=JavaSparkContext(conf)
val input=sc.textFile(“C:\\spark\u workspace\\myfile.txt”,1)
val words=input.flatMap{it.split(“”)}
}
啊,我想出来了。我知道有一种方法,因为Spark同时支持Java和Scala。解决这个问题的关键是使用JavaSparkContext
而不是基于Scala的SparkContext
由于某些原因,Scala和Kotlin并不总是与SAM转换相处融洽
fun main(args: Array<String>) {
val conf = SparkConf().setMaster("local").setAppName("Line Counter")
val sc = JavaSparkContext(conf)
val input = sc.textFile("C:\\spark_workspace\\myfile.txt",1)
val words = input.flatMap { it.split(" ") }
}
fun main(args:Array){
val conf=SparkConf().setMaster(“本地”).setAppName(“行计数器”)
val sc=JavaSparkContext(conf)
val input=sc.textFile(“C:\\spark\u workspace\\myfile.txt”,1)
val words=input.flatMap{it.split(“”)}
}
尽管问题已经解决,但我想提供一些有关编译问题原因的信息。在本例中,输入
有一种类型的RDD
,其方法接受一个lambda,该lambda应返回可遍历一次[U]
。由于Scala有自己的集合框架,Java集合类型无法转换为TraversableOnce
此外,我不太确定Scala
函数
s是否真的是SAMs。从截图上看,Kotlin没有提供用lambda替换函数
实例的方法。尽管问题已经解决,但我想提供一些有关编译问题原因的信息。在本例中input
的类型为RDD
,其方法接受一个lambda,该lambda应返回TraversableOnce[U]
。由于Scala有自己的集合框架,Java集合类型不能转换为TraversableOnce
此外,我不太确定Scala函数
s是否真的是SAMs。从截图中可以看出,Kotlin没有提供用lambda替换函数
实例