前言
虽然有充分的理由使用Python API开发Spark应用程序,但不可否认的是Scala是Spark的原生语言,有一些功能或第三方库并没有直接提供python版本。
那么当我们想要使用一些PySpark不支持的功能,或者只是想在Python应用程序中使用Scala库该怎么办呢?
下面的示例展示了如何在PySpark应用程序中调用Scala代码。
示例
Pyspark在解释器和JVM之间建立了一个geteway ,也就是 Py4J 。我们可以用它来操作Java对象。
下面让我们编写一个最简单的Scala对象:
package com.test.spark
object SayHello {
def ditBonjour = println("Bonjour")
}
然后,我们使用maven或sbt等工具构建它并将其打包为JAR: