从 Apache Spark 任务访问 Java/Scala 函数
在 PySpark 中,由于以下限制,在任务中调用 Java/Scala 函数可能具有挑战性Py4J 网关。
潜在问题
Py4J 网关促进 Python 和 Java/Scala 之间的通信,仅在驱动程序上运行,工作人员无法访问。某些操作(例如 DecisionTreeModel.predict)使用 JavaModelWrapper.call 来调用需要直接访问 SparkContext 的 Java 函数。
解决方法
虽然默认的 Py4J 通信不可行,有多种解决方法:
Spark SQL 数据源 API:
Scala UDF:
Scala 接口:
外部工作流程管理:
共享 SQLContext:
以上是如何从 PySpark 中的 Apache Spark 任务调用 Java/Scala 函数?的详细内容。更多信息请关注PHP中文网其他相关文章!