38

Java のサードパーティ データベース クライアント ライブラリがいくつかあります。私はそれらにアクセスしたい

java_gateway.py

例: クライアント クラス (JDBC ドライバーではありません!) を Java ゲートウェイ経由で Python クライアントが利用できるようにするには:

java_import(gateway.jvm, "org.mydatabase.MyDBClient")

サードパーティのライブラリを JVM クラスパスに追加する場所が明確ではありません。ファイルcompute-classpath.shに追加しようとしましたが、うまくいかなかったようです。私は得る:

Py4jError: パッケージを呼び出そうとしています

また、Hive と比較すると、ハイブ JAR ファイルはファイルcompute-classpath.shを介してロードされないため、疑わしいと思います。JVM 側のクラスパスをセットアップするための別のメカニズムが発生しているようです。

4

9 に答える 9

33

外部jarを引数としてpysparkに追加できます

pyspark --jars file1.jar,file2.jar
于 2015-02-12T22:24:08.113 に答える
14

--jars xxx.jarspark-submit を使用するときに追加できます

./bin/spark-submit --jars xxx.jar your_spark_script.py

または環境変数を設定しますSPARK_CLASSPATH

SPARK_CLASSPATH='/path/xxx.jar:/path/xx2.jar' your_spark_script.py

your_spark_script.pypyspark API によって書かれました

于 2015-09-17T05:53:46.717 に答える
4

受け入れられた回答とは別に、以下のオプションもあります。

  1. 仮想環境にいる場合は、配置できます

    例えばlib/python3.7/site-packages/pyspark/jars

  2. Javaにそれを検出させたい場合は、ext/ディレクトリの下にjreがインストールされている場所を配置できます

于 2020-05-19T16:33:45.737 に答える
3

もう 1 つできることは、pyspark がインストールされている pyspark jar フォルダーに Jar を追加することです。通常 /python3.6/site-packages/pyspark/jars

jar が仮想環境の pyspark インストールに移動する必要がある仮想環境を使用している場合は注意してください。

このようにして、コマンドラインで送信せずにjarを使用したり、コードにロードしたりできます。

于 2018-07-26T10:55:54.603 に答える