从 Scala Spark 代码调用 Pyspark 脚本
Invoking Pyspark script from Scala Spark Code
我有一个 Scala Spark 应用程序,想调用 pySpark/python (pyspark_script.py) 进行进一步处理。
Python 中有多个资源可以使用 Java/Scala 代码,但我正在寻找 scala->Pyspark
我探索了 Jython Scala/Java 以包含 Python 代码如下:
PythonInterpreter.initialize(System.getProperties, properties, sysArgs)
val pi = new PythonInterpreter()
pi.execfile("path/to/pyscript/mypysparkscript.py")
我看到错误提示:“ImportError:没有名为 pyspark 的模块”
有什么方法可以让 Scala spark 与 PYSpark 使用相同的 sparkContext/session 通信吗?
您可以使用 process 对象在 Scala 中 运行 shell 命令。
// Spark codes goes here .....
// Call pyspark code
import sys.process._
"python3 /path/to/python/file.py.!!
要使用相同的会话,请将以下行添加到 python 文件。
spark = SparkSession.builder.getOrCreate()
您也可以使用 getActiveSession() 方法。
注意:确保安装了 pyspark 模块。
您可以使用 pip3 install pyspark
命令来做到这一点。
我有一个 Scala Spark 应用程序,想调用 pySpark/python (pyspark_script.py) 进行进一步处理。
Python 中有多个资源可以使用 Java/Scala 代码,但我正在寻找 scala->Pyspark
我探索了 Jython Scala/Java 以包含 Python 代码如下:
PythonInterpreter.initialize(System.getProperties, properties, sysArgs)
val pi = new PythonInterpreter()
pi.execfile("path/to/pyscript/mypysparkscript.py")
我看到错误提示:“ImportError:没有名为 pyspark 的模块”
有什么方法可以让 Scala spark 与 PYSpark 使用相同的 sparkContext/session 通信吗?
您可以使用 process 对象在 Scala 中 运行 shell 命令。
// Spark codes goes here .....
// Call pyspark code
import sys.process._
"python3 /path/to/python/file.py.!!
要使用相同的会话,请将以下行添加到 python 文件。
spark = SparkSession.builder.getOrCreate()
您也可以使用 getActiveSession() 方法。
注意:确保安装了 pyspark 模块。
您可以使用 pip3 install pyspark
命令来做到这一点。