從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中文網其他相關文章!