問題タブ [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 に答える
6866 参照

python - Py4Java: ImportError: Apache Spark の Python シェルを実行しているときに numpy という名前のモジュールがありません

このApache Spark トークのライブ コーディングをフォローしようとしています。

エラーが発生するまでのIPythonノートブックは次のとおりです。

IPython ノートブックでの spark + lightning デモ

numpyがインストールされています:

しかし、model = KMeans.train(data, k=5)依存するコマンドを実行すると、Spark が使用numpyするPy4Javaライブラリがこのエラーをスローします。py4j/protocol.pySpark フォルダー内のこの Python スクリプトに、既存の numpy インストールからインポートするように指示するにはどうすればよい./anaconda/lib/python2.7/site-packagesですか?

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

python - 新しいプロセスが生成されると、インポートはどうなりますか?

新しいプロセスが生成されると、インポートされたモジュール変数はどうなりますか?

IE

どこ:

foob​​ar は、someOtherModule の開始時に宣言されたものにアクセスしています。

someOtherModule.py:

具体的には、関数の外側の上部に初期化されたpy4jゲートウェイを持つモジュール(Yと呼ばれる)があります。モジュール X では、一度に複数のファイルをロードしています。ロード後にデータを並べ替える関数は、ゲートウェイを使用する Y の関数を使用します。

このデザインはpythonicですか?新しいプロセスが生成されるたびに Y モジュールをインポートする必要がありますか? または、これを行うより良い方法はありますか?

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

python - Python -> Py4j -> Spark -> Cassandra

すべてが機能することを確認するためだけに、4 行のみのテスト Cassandra テーブルで単純な Spark 行カウント ジョブをテストしたいと考えています。

これを Java からすばやく動作させることができます。

今、私はPythonで同じことをしたいと思っています。Spark ディストリビューションには、Python から Spark を使用するためのバンドルされていない PySpark ソース コードのセットが付属しています。py4j と呼ばれるライブラリを使用して Java サーバーを起動し、TCP ゲートウェイを介して Java コマンドをマーシャリングします。これを機能させるために、そのゲートウェイを直接使用しています。

--driver-class-path オプションを使用して、次の追加の jar を Java SparkSubmit ホストに指定します。

行数テストを行うコア Python コードは次のとおりです。

この最後の行で、次のエラーが発生します。

明らかに、何らかの構成またはセットアップの問題があります。合理的にデバッグまたは調査する方法、または何を試すことができるかわかりません。Cassandra/Python/Spark の専門知識をお持ちの方にアドバイスをいただけますか? ありがとうございました!

編集: 同僚が、これのルートである spark-defaults.conf ファイルをセットアップしました。これが Java ではなく Python で問題を引き起こした理由を完全には理解していませんが、問題ではありません。私はそのconfファイルを望まず、それを削除すると問題が解決しました。

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

java - Python スクリプトによって生成されたデバッグ用の JVM に接続します

IntelliJ で実行する Python コードがあります。Python コードはjavaコマンドを実行し、最終的に JVM を生成します。Python と JVM は、Py4J とカスタム ソケットを使用して通信します。IntelliJ を使用してデバッグ目的で JVM に接続するにはどうすればよいですか?