Soweit ich weiß pandas
ist in cython geschrieben und ist eine CPython-Erweiterung. Das bedeutet, dass es soll durch CPython Implementierung der Python-Sprache verwendet werden soll (die die primäre implemntation ist die meisten Leute benutzen).
Jython ist eine Python-Implementierung Python-Programme auf JVM laufen und verwendet wird, die Integration mit Java-Bibliotheken zur Verfügung zu stellen, oder Python-Scripting von Java-Programmen usw.
Python-Modulen als CPython Erweiterungen implementiert (wie Pandas) nicht unbedingt kompatibel mit allen Python-Implementierungen (berühmte Implementierungen andere als CPython sind Jython, PyPy und IronPython)
Wenn Sie wirklich Jython und Pandas zusammen verwenden müssen, und man konnte nicht einen anderen Weg finden, das Problem zu lösen, dann schlage ich sie mit in verschiedenen Prozessen. Ein Java-Prozess ist Ihre Jython-Anwendung, die auf JVM läuft (entweder Java-Code, der Jython-Bibliotheken aufruft, oder ein Python-Code, der möglicherweise eine Integration mit einigen Java-Bibliotheken erfordert), und ein anderer CPython-Prozess wird ausgeführt, um Operationen von Pandas bereitzustellen.
dann irgendeine Form von IPC (oder Werkzeug) (Standard IO, Steckdosen, OS Rohre, gemeinsam genutzten Speicher, memcache, Redis, etc.) zu kommunizieren. Der Java - Prozess sendet eine Anfrage an CPython (oder registriert die Anfrage an Shared Storage), liefert Verarbeitungsparameter, CPython - Prozess verwendet Pandas, um Ergebnisse zu berechnen und sendet eine serialisierte Form der Ergebnisse zurück (oder setzt die Ergebnisse zurück auf die Geteiltes Lager).
Dieser Ansatz erfordert zusätzliche Codierung (aufgrund der Aufspaltung der Aufgaben in separate Prozesse) und Serialisierung der Anfrage/Antwort (die von der Anwendung und den Daten abhängt, die es zu verarbeiten versucht).
In diesem Beispielcode zu der Frage kann Java-Prozess den CSV-Dateinamen zu CPython bereitstellen, CPython verarbeitet die CSV-Datei mit Pandas, generiert die Ergebnis-CSV-Datei und gibt den Namen der neuen Datei an den Java-Prozess zurück.
Könnten Sie bitte erklären, warum Sie Jython anstelle von CPython verwenden? – farzad
Und können Sie bitte weitere Informationen zu Ihrer Einrichtung geben? Wie haben Sie Jython und Pandas installiert? Genauer gesagt, wo hast du Pandas installiert? – farzad
Weil ich einen Python-Code geschrieben habe, um .cvs zu importieren und Daten mit Pandas zu verarbeiten. Jetzt muss mein Chef mich dem Benutzer geben, der unter Java-Umgebung ist, aber ich benutze selten Java. Also wähle ich jython zum verbinden. –