問題タブ [py4j]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Eclipse を使用した py4j のインポート
py4j.org の紹介の最初の部分を読んだ後、スキップして Eclipse セクションに進みました。http://eclipse.py4j.org/にある Eclipse プラグインをインストールし、その後 Eclipse を再起動しました。
DateRange という名前の既存の Java プロジェクトにクラスがあるので、指示に従って DateRangeEntryPoint という名前の新しいクラスを作成しました。これは、次のコードで構成されていました。
}
しかし、これをEclipseで実行しようとすると、次のエラーが発生します。
私が立ち往生しているのは、Eclipseプロジェクトで既に定義されているオブジェクトをPythonで利用できるように、Eclipseにpy4jをインポートする方法です。
java - py4j で Eclipse プロジェクト全体を使用する
py4j を使用した Python 開発で使用できるようにしたい eclipse プロジェクト フォルダーに Java コードがたくさんあります。
Java プロジェクトを python 3.0 (アナコンダ) に接続する標準的な方法はありますか? これまでのところ、プロジェクト内のすべてのクラスのエントリ ポイントを作成してから、
Java プロジェクトの主要部分のどこかに。
java - PythonでJavaクラスオブジェクトを受け取る
いくつかのクラスが定義された Java .jar ファイルがあり、そこから任意のクラスを選択し、そのオブジェクトをインスタンス化し、そのメソッドを呼び出すことを意図した Python フレームワークがあります。これを行うには、py4j JavaGateway() を使用しています。
Python 側:
Java 側:
Java から実際のクラス オブジェクトを返そうとしましたが (1 つのケースではデバッグ用にハードコードされています)、Python でも認識されません。Python で Java jar のメソッドを呼び出すこのアプローチが実現可能かどうかを提案してください。
java - Java 配列から NumPy 配列 (Py4J) への高速変換
NumPy配列をJava配列に変換する方法の良い例がいくつかありますが、その逆ではありません-JavaオブジェクトからNumPy配列にデータを変換する方法。次のような Python スクリプトがあります。
my_numpy
は Numpy 配列、int_array
は整数の Java 配列 -int[ ][ ]
一種の配列です。次のように Python スクリプトで初期化されます。
そのままでも機能しますが、最速の方法ではなく、かなりゆっくりと動作します - ~1000x1000 配列の場合、変換には 5 分以上かかりました。
妥当な時間でこれを作成する方法はありますか?
私が試してみると:
私は得る:
python - Spark Java ヒープ エラー
ここで何が起こっているのか、そしてその理由はわかりません。
パンダとスパークデータフレームの両方としてロードされるデータフレームがあります。
データ フレームはまばらで、ほとんどがゼロです。寸法は 56K X 9K です。だからそんなに大きくない
また、次のコマンドを spark/conf/spark-defaults.conf ファイルに入れました
ご覧のとおり、Driver に 8GB、Executor に 2G を既に割り当てています。Macbook Pro にローカルにインストールされた Spark を使用しています。
私がする時
最初の 5 行を確認するには、次のようにします。
このデータ フレームは、以下のように Spark データ フレームのクロス集計を使用して作成されました。
.show() が使用されている場合、recommender_sdf の上の Spark データ フレームは正常に動作します。
The same cross tab method is used for pandas data frame and when I do below it works very fine.
This works immediately.
So that shows that the file is easily able to get loaded in memory and can be used by pandas, but the same data frame in spark when used .show() or .head() is throwing the java heap error. And it is taking lot of time before throwing the error.
I don't understand why is this happening. Isn't Spark supposed to be faster than pandas and shouldn't have this memory issue when same data frame can be easily accessed and printed using pandas.
EDIT:
Ok. The cross-tabbed spark data frame looks like this when I fetch first few rows and columns from the corresponding pandas data frame
The column names are basically long text strings. And the column values are either 0 or 1
java - Java から Python 関数を呼び出すための異なる/より良いアプローチ
私はPythonを初めて使用し、JavaからPythonの関数を呼び出そうとしています。
私の主な要件は次のとおりです。
.py
java から呼び出せるようにするためだけにファイルを変更する必要がないという意味で、呼び出しは透過的である必要があります。その中にいくつかの関数を含む任意の python ファイルが与えられる場合があります。.py
ファイルを変更することなく、これらの関数を呼び出すことができるはずです。int
プリミティブ型 ( 、など) または非プリミティブ型 ( 、) の両方の引数を Java から Python 関数に送信し、Python から返されたオブジェクト (プリミティブ型または非プリミティブ型の可能性がある) を受信できるようにしString
たいジャバに。pandas DataFrame と numpy ndarray も使用しているため、対応するオブジェクトを Java との間で送受信できるようにしたいと考えています。floats
HashMap
ArrayList
- Jython では利用できない可能性のある新しいライブラリを使用する必要がある可能性があるため、できればJython ではなく CPython に固執したいと考えています。
オンラインで見つけたいくつかのオプションがあります。いくつかは次のとおりです。
.py
スクリプト ファイルを変更せずに Python 関数を呼び出すことができるJython のPythonInterpreterを使用します。py1.py
JythonTest.groovy
私は自分のニーズを十分に満たすことができます。しかし、CPython ではありません。
Use ScriptEngine : これは PythonInterpreter と非常によく似ています。しかし、再びそのJythonです。また、PythonInterpreter とは異なり、Jython 2.5+ では動作せず、PyObjects に直接アクセスできません。したがって、このオプションは非常にうまく閉じることができます。
- py4jを使用します: Jython PythonInterpreter の場合と同じくらい最小限の例を見つけることができません
- java2pythonを使用します。しかし、上記の要件を満たすことができるかどうかを判断できるように、java から python を呼び出すことについてはあまり情報が提供されていません。誰かがこれについてもっと光を当てることができますか? より具体的には、Jython PythonInterpreter のコードと同じくらい最小限のコードを書くことができれば.
- JPypeを使用します。また、私はプロジェクトが開発中ではないことを感じました。それは...ですか?
上記のすべてのアプローチを正しく理解していれば、Jython PythonInterpreter が最良の選択のようです。それらをつかみながら、私は間違いを犯しましたか?また、他に良い選択肢はありますか?
jdbc - IllegalArgumentException: u'間違った FS: file://spark-warehouse, expected: file:///'
PySpark を使用して Postgres データベースを Spark にロードしようとしています。
次のエラーが表示されますが、それが何を意味するのかわかりません。
java - Python の py4j を介した Java corenlp センチメント スコア プログラムのコンパイル エラー
私は主に Python を使用し、Java は初めてです。ただし、Java プログラムを作成し、Py4j Python パッケージを介して Python で動作させようとしています。次のプログラムは、私が例から適応したものです。コンパイルエラーが発生しました。光を当てることができますか?基本的なエラーだと確信しています。ありがとう。