問題タブ [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.

0 投票する
1 に答える
1236 参照

java - Eclipse を使用した py4j のインポート

py4j.org の紹介の最初の部分を読んだ後、スキップして Eclipse セクションに進みました。http://eclipse.py4j.org/にある Eclipse プラグインをインストールし、その後 Eclipse を再起動しました。

DateRange という名前の既存の Java プロジェクトにクラスがあるので、指示に従って DateRangeEntryPoint という名前の新しいクラスを作成しました。これは、次のコードで構成されていました。

}

しかし、これをEclipseで実行しようとすると、次のエラーが発生します。

私が立ち往生しているのは、Eclipseプロジェクトで既に定義されているオブジェクトをPythonで利用できるように、Eclipseにpy4jをインポートする方法です。

0 投票する
1 に答える
213 参照

java - py4j で Eclipse プロジェクト全体を使用する

py4j を使用した Python 開発で使用できるようにしたい eclipse プロジェクト フォルダーに Java コードがたくさんあります。

Java プロジェクトを python 3.0 (アナコンダ) に接続する標準的な方法はありますか? これまでのところ、プロジェクト内のすべてのクラスのエントリ ポイントを作成してから、

Java プロジェクトの主要部分のどこかに。

0 投票する
0 に答える
1190 参照

java - PythonでJavaクラスオブジェクトを受け取る

いくつかのクラスが定義された Java .jar ファイルがあり、そこから任意のクラスを選択し、そのオブジェクトをインスタンス化し、そのメソッドを呼び出すことを意図した Python フレームワークがあります。これを行うには、py4j JavaGateway() を使用しています。

Python 側:

Java 側:

Java から実際のクラス オブジェクトを返そうとしましたが (1 つのケースではデバッグ用にハードコードされています)、Python でも認識されません。Python で Java jar のメソッドを呼び出すこのアプローチが実現可能かどうかを提案してください。

0 投票する
2 に答える
4358 参照

java - Java 配列から NumPy 配列 (Py4J) への高速変換

NumPy配列をJava配列に変換する方法の良い例がいくつかありますが、その逆ではありません-JavaオブジェクトからNumPy配列にデータを変換する方法。次のような Python スクリプトがあります。

my_numpyは Numpy 配列、int_arrayは整数の Java 配列 -int[ ][ ]一種の配列です。次のように Python スクリプトで初期化されます。

そのままでも機能しますが、最速の方法ではなく、かなりゆっくりと動作します - ~1000x1000 配列の場合、変換には 5 分以上かかりました。

妥当な時間でこれを作成する方法はありますか?

私が試してみると:

私は得る:

0 投票する
1 に答える
2665 参照

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

0 投票する
2 に答える
1360 参照

java - Java から Python 関数を呼び出すための異なる/より良いアプローチ

私はPythonを初めて使用し、JavaからPythonの関数を呼び出そうとしています。

私の主な要件は次のとおりです。

  • .pyjava から呼び出せるようにするためだけにファイルを変更する必要がないという意味で、呼び出しは透過的である必要があります。その中にいくつかの関数を含む任意の python ファイルが与えられる場合があります。.pyファイルを変更することなく、これらの関数を呼び出すことができるはずです。
  • intプリミティブ型 ( 、など) または非プリミティブ型 ( 、) の両方の引数を Java から Python 関数に送信し、Python から返されたオブジェクト (プリミティブ型または非プリミティブ型の可能性がある) を受信できるようにしStringたいジャバに。pandas DataFrame と numpy ndarray も使用しているため、対応するオブジェクトを Java との間で送受信できるようにしたいと考えています。floatsHashMapArrayList
  • 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 が最良の選択のようです。それらをつかみながら、私は間違いを犯しましたか?また、他に良い選択肢はありますか?

0 投票する
1 に答える
876 参照

jdbc - IllegalArgumentException: u'間違った FS: file://spark-warehouse, expected: file:///'

PySpark を使用して Postgres データベースを Spark にロードしようとしています。

次のエラーが表示されますが、それが何を意味するのかわかりません。

0 投票する
1 に答える
54 参照

java - Python の py4j を介した Java corenlp センチメント スコア プログラムのコンパイル エラー

私は主に Python を使用し、Java は初めてです。ただし、Java プログラムを作成し、Py4j Python パッケージを介して Python で動作させようとしています。次のプログラムは、私が例から適応したものです。コンパイルエラーが発生しました。光を当てることができますか?基本的なエラーだと確信しています。ありがとう。