Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark Kotlin和Spark-SAM问题_Apache Spark_Kotlin - Fatal编程技术网

Apache spark Kotlin和Spark-SAM问题

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("

也许我正在做一些不太受支持的事情,但我真的很想在学习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(" "))
这是我在科特林的尝试。但它在第四行有一个汇编问题:

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替换
函数
实例