【问题标题】:Passing sparkSession Between Scala Spark and PySpark在 Scala Spark 和 PySpark 之间传递 sparkSession
【发布时间】:2020-01-30 18:15:22
【问题描述】:

我的要求是从现有 PySpark 程序中调用“Spark Scala”函数。 将 PySpark 程序中创建的 sparkSession 传递给 Scala 函数的最佳方法是什么。 我将我的 scala jar 传递给 Pyspark,如下所示。

spark-submit --jars ScalaExample-0.1.jar pyspark_call_scala_example.py iris.data

Scalacode

def getDf(spark: SparkSession, query:String, df: DataFrame, log: Logger): DataFrame = {

import spark.implicits._

val df = spark.sql(query)

df

}

Pysparkcode

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 ?

https://www.crowdstrike.com/blog/spark-hot-potato-passing-dataframes-between-scala-spark-and-pyspark/

【问题讨论】:

  • 您好,欢迎您。您可以使用 3 个反引号将代码包含在格式化的代码块中。这将使可读性更强,更有可能得到答案。这里有更多信息stackoverflow.com/editing-help
  • 编辑已完成并经过审核和批准。谢谢。

标签: scala dataframe apache-spark pyspark


【解决方案1】:

要将 SparkSession 从 Python 传递到 Scala,请使用 spark._jsparkSession

【讨论】:

    猜你喜欢
    • 2018-11-26
    • 2017-09-05
    • 2017-02-08
    • 1970-01-01
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 2021-01-31
    • 2022-07-02
    相关资源
    最近更新 更多