我的要求是从现有的PySpark程序中调用“ Spark Scala”功能。 将PySpark程序中创建的sparkSession传递给Scala函数的最佳方法是什么。 我按如下方式将我的Scala罐子传递到Pyspark。
spark-submit --jars ScalaExample-0.1.jar pyspark_call_scala_example.py iris.data
def getDf(spark: SparkSession, query:String, df: DataFrame, log: Logger): DataFrame = {
import spark.implicits._
val df = spark.sql(query)
df
}
if __name__ == '__main__':
query = sys.argv[1]
spark = SparkSession \
.builder \
.appName("PySpark using Scala example") \
.getOrCreate()
log4jLogger = sc._jvm.org.apache.log4j
log = log4jLogger.LogManager.getLogger(__name__)
query_df = DataFrame(sc._jvm.com.crowdstrike.dsci.sparkjobs.PythonHelper.getDf(???, query, ???), sqlContext)
如何将sparksession和logger传递给getDf?
答案 0 :(得分:0)
要将SparkSession从Python传递到Scala,请使用spark._jsparkSession
。