


So rufen Sie Java/Scala-Funktionen aus einer Spark-Aufgabe heraus auf
Aufrufen einer Java/Scala-Funktion aus einer Spark-Aufgabe heraus
Hintergrund
Bei Verwendung von Scala wird DecisionTreeModel.predict als Teil der Karte aufgerufen Eine Transformation kann zu einer Ausnahme führen. Der Grund dafür hängt mit dem Aufruf der Methode JavaModelWrapper.call zusammen.
Verstehen des Problems
JavaModelWrapper.call erfordert Zugriff auf den SparkContext, der im Kontext von PySpark auf dem ausgeführt wird Treiber. Allerdings läuft die Map-Transformation auf Worker-Knoten und daher ist der Aufruf von JavaModelWrapper.call aus der Map heraus nicht zulässig.
Lösung mit Java-UDFs
Eine Lösung besteht darin, den Java-Code als Benutzer zu kapseln -Definierte Funktion (UDF) und verwenden Sie sie in Spark SQL. Dadurch wird das Problem des Aufrufs von Java-Code aus Python-Aufgaben vermieden. Diese Lösung erfordert jedoch eine Datenkonvertierung zwischen Python und Scala und führt zu zusätzlicher Komplexität.
Lösung mit Java Service Wrappern
Eine weitere Option besteht darin, benutzerdefinierte Java Service Wrapper zu erstellen, die eine Schnittstelle zum Java-Code bereitstellen von Python. Diese Wrapper können bei Py4j registriert und über org.apache.spark.api.java.JavaRDD.withContext aufgerufen werden, um Zugriff auf den SparkContext zu erhalten.
Fazit
Während Lösungen wie Java UDFs und Java-Service-Wrapper bieten Workarounds für den Aufruf von Java/Scala-Funktionen aus Spark-Aufgaben heraus. Es ist wichtig, den mit jedem Ansatz verbundenen Overhead und die Einschränkungen zu berücksichtigen, bevor Sie die beste Lösung für Ihren spezifischen Anwendungsfall auswählen.
Das obige ist der detaillierte Inhalt vonSo rufen Sie Java/Scala-Funktionen aus einer Spark-Aufgabe heraus auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Lösung für Erlaubnisprobleme beim Betrachten der Python -Version in Linux Terminal Wenn Sie versuchen, die Python -Version in Linux Terminal anzuzeigen, geben Sie Python ein ...

Wie kann man nicht erkannt werden, wenn Sie Fiddlereverywhere für Man-in-the-Middle-Lesungen verwenden, wenn Sie FiddLereverywhere verwenden ...

Bei der Verwendung von Pythons Pandas -Bibliothek ist das Kopieren von ganzen Spalten zwischen zwei Datenrahmen mit unterschiedlichen Strukturen ein häufiges Problem. Angenommen, wir haben zwei Daten ...

Wie lehre ich innerhalb von 10 Stunden die Grundlagen für Computer -Anfänger für Programmierungen? Wenn Sie nur 10 Stunden Zeit haben, um Computer -Anfänger zu unterrichten, was Sie mit Programmierkenntnissen unterrichten möchten, was würden Sie dann beibringen ...

Wie hört Uvicorn kontinuierlich auf HTTP -Anfragen an? Uvicorn ist ein leichter Webserver, der auf ASGI basiert. Eine seiner Kernfunktionen ist es, auf HTTP -Anfragen zu hören und weiterzumachen ...

Verwenden Sie Python im Linux -Terminal ...

Fastapi ...

Verständnis der Anti-Crawling-Strategie von Investing.com Viele Menschen versuchen oft, Nachrichten von Investing.com (https://cn.investing.com/news/latest-news) zu kriechen ...
