web-dev-qa-db-fra.com

Comment ajouter des fichiers Java tiers à utiliser dans pyspark

J'ai des bibliothèques de clients de bases de données tierces en Java. Je veux y accéder par

Java_gateway.py

E.g: pour rendre la classe cliente (pas un pilote jdbc!) Disponible pour le client python via la passerelle Java:

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

Il est difficile de savoir où ajouter les bibliothèques tierces au chemin de classe jvm. J'ai essayé d'ajouter à compute-classpath.sh mais cela ne semblait pas fonctionner: je reçois 

 Py4jError: Trying to call a package

De plus, lors de la comparaison avec Hive: les fichiers jar Hive ne sont PAS chargés via compute-classpath.sh, ce qui me rend suspect. Il semble y avoir un autre mécanisme en cours pour configurer le classpath côté jvm.

17
javadba

Vous pouvez ajouter des jars externes comme arguments de pyspark

pyspark --jars file1.jar,file2.jar
22
Marl

Vous pouvez ajouter le chemin d'accès au fichier JAR à l'aide de la configuration de Spark au moment de l'exécution.

Voici un exemple :

conf = SparkConf().set("spark.jars", "/path-to-jar/spark-streaming-kafka-0-8-Assembly_2.11-2.2.1.jar")

sc = SparkContext( conf=conf)

Reportez-vous au document pour plus d'informations.

13
AAB

Vous pouvez ajouter --jars xxx.jar lorsque vous utilisez spark-submit

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

ou définir la variable d'environnement SPARK_CLASSPATH

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

your_spark_script.py a été écrit par pyspark API

9
Ryan Chou
  1. Extrait le fichier JAR téléchargé.
  2. Editez la variable d'environnement système
    • Ajoutez une variable nommée SPARK_CLASSPATH et définissez sa valeur sur\chemin\fichier\extrait\jar \.

Exemple: vous avez extrait le fichier jar du lecteur C dans le dossier nommé sparkts Sa valeur doit être: C:\sparkts

  1. Redémarrez votre cluster
5
Umang singhal

Une autre chose que vous pouvez faire est d’ajouter le fichier Jar dans le dossier pyspark jar où pyspark est installé. Généralement /python3.6/site-packages/pyspark/jars 

Faites attention si vous utilisez un environnement virtuel, le jar doit aller à l'installation de pyspark dans l'environnement virtuel. 

De cette façon, vous pouvez utiliser le fichier jar sans l'envoyer en ligne de commande ou le charger dans votre code. 

1
Nab