Accès aux fonctions Java/Scala à partir des tâches Apache Spark
Dans PySpark, appeler des fonctions Java/Scala dans des tâches peut être difficile en raison des limitations de la passerelle Py4J.
Problème sous-jacent
La passerelle Py4J, qui facilite la communication entre Python et Java/Scala, ne s'exécute que sur le pilote et n'est pas accessible aux travailleurs. Certaines opérations, telles que DecisionTreeModel.predict, utilisent JavaModelWrapper.call pour appeler des fonctions Java qui nécessitent un accès direct à SparkContext.
Solutions de contournement
Bien que la communication Py4J par défaut ne soit pas réalisable , il existe plusieurs solutions :
API Spark SQL Data Sources :
Scala UDF :
Interfaces Scala :
Gestion des flux de travail externes :
Contexte SQL partagé :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!