【发布时间】: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 ?
【问题讨论】:
-
您好,欢迎您。您可以使用 3 个反引号将代码包含在格式化的代码块中。这将使可读性更强,更有可能得到答案。这里有更多信息stackoverflow.com/editing-help
-
编辑已完成并经过审核和批准。谢谢。
标签: scala dataframe apache-spark pyspark