我是Kotlin的新手。我的目标是运行用Kotlin编写的spark函数进行流和转换。我已经下载了Kotlin本机编译器,并用vim编写了这个简单的spark函数:
import org.apache.spark.SparkConf
import org.apache.spark.api.java.JavaSparkContext
fun main(args: Array<String>) {
val conf = SparkConf()
.setMaster("yarn")
.setAppName("Kotlin Spark Test")
val sc = JavaSparkContext(conf)
}
然后我将其另存为SparkApp.kt并使用以下命令运行编译器:
kotlinc SparkApp.kt -ib $SPARK_HOME/jars/spark-core_2.11-2.3.1.jar -o SparkApp.jar
由于错误而异常失败:
错误:未解决的参考:org 等等
我错过了什么吗?
答案 0 :(得分:0)
您不能将JVM库用作Kotlin / Native依赖项。 Kotlin / Native只能使用T(n) = Theta(1)
Kotlin库,并且只能通过CInterop工具与本机库进行互操作。
JVM库只能由Kotlin / JVM使用,而Kotlin / JS和Kotlin / Native都不能使用JVM字节码库作为依赖项。
如果要改为为JVM编译程序,则肯定使用了错误的命令行工具,因为*.klib
是Kotlin / Native编译器。将kotlin-native-linux-...
或kotlin-compiler-...
用于Kotlin / JVM。并且,当然,将JVM库作为experimental-kotlin-compiler-linux-...
而不是-cp
传递。