Je veux lire des fichiers CSV dans Zeppelin et utiliser le paquet Spark-csv de databricks: https://github.com/databricks/spark-csv
Dans le spark-shell, je peux utiliser spark-csv avec
spark-Shell --packages com.databricks:spark-csv_2.11:1.2.0
Mais comment puis-je dire à Zeppelin d’utiliser ce paquet?
Merci d'avance!
Vous devez ajouter le référentiel Spark Packages à Zeppelin avant de pouvoir utiliser% dep sur les packages spark.
%dep
z.reset()
z.addRepo("Spark Packages Repo").url("http://dl.bintray.com/spark-packages/maven")
z.load("com.databricks:spark-csv_2.10:1.2.0")
Si vous souhaitez que cela soit disponible dans tous vos cahiers, vous pouvez également ajouter l'option --packages au paramètre de commande spark-submit de la configuration d'interpréteur dans Zeppelin, puis redémarrer l'interprète. Cela devrait démarrer un contexte avec le paquet déjà chargé selon la méthode spark-Shell.
Dans le cahier, utilisez quelque chose comme:
import org.Apache.spark.sql.SQLContext
val sqlContext = new SQLContext(sc)
val df = sqlContext.read
.format("com.databricks.spark.csv")
.option("header", "true") // Use first line of all files as header
.option("inferSchema", "true") // Automatically infer data types
.load("my_data.txt")
Mettre à jour:
Dans la liste de diffusion des utilisateurs de Zeppelin, c'est maintenant (nov. 2016) que Moon Soo Lee (créateur d'Apache Zeppelin) a déclaré que les utilisateurs préfèrent conserver% dep car cela leur permet:
La tendance est maintenant de garder% dep, aussi ne faut-il pas la considérer comme dépréciée pour le moment.
BEGIN-EDIT
% dep est déconseillé dans Zeppelin 0.6.0. Veuillez vous reporter à la réponse de Paul-Armand Verhaegen.
Veuillez lire plus loin dans cette réponse, si vous utilisez Zeppelin plus vieux que 0.6.0
END-EDIT
Vous pouvez charger le paquet spark-csv à l'aide de l'interprète% dep.
comme,
%dep
z.reset()
// Add spark-csv package
z.load("com.databricks:spark-csv_2.10:1.2.0")
Voir la section Chargement des dépendances dans https://zeppelin.incubator.Apache.org/docs/interpreter/spark.html
Si vous avez déjà initialisé Spark Context, la solution rapide consiste à redémarrer zeppelin et exécuter le paragraphe zeppelin avec le code ci-dessus en premier, puis à exécuter votre code spark pour lire le fichier CSV.
Vous pouvez ajouter des fichiers jar sous les dépendances de Spark Interpreter:
Une autre solution:
Dans conf/zeppelin-env.sh (situé dans/etc/zeppelin pour moi), ajoutez la ligne:
export SPARK_SUBMIT_OPTIONS="--packages com.databricks:spark-csv_2.10:1.2.0"
Puis démarrez le service.
si vous définissez dans conf/zeppelin-env.sh
export SPARK_HOME=<PATH_TO_SPARK_DIST>
Zeppelin recherchera alors dans $ SPARK_HOME/conf/spark-defaults.conf et vous pourrez y définir des jars:
spark.jars.packages com.databricks:spark-csv_2.10:1.4.0,org.postgresql:postgresql:9.3-1102-jdbc41
puis regarde
http: // zepplin_url: 4040/environment/pour les éléments suivants:
fichier spark.jars: /root/.ivy2/jars/com.databricks_spark-csv_2.10-1.4.0.jar, fichier: /root/.ivy2/jars/org.postgresql_postgresql-9.3-1102-jdbc41 .pot
spark.jars.packages com.databricks: spark-csv_2.10: 1.4.0, org.postgresql: postgresql: 9.3-1102-jdbc41
Pour plus de référence: https://zeppelin.incubator.Apache.org/docs/0.5.6-incubating/interpreter/spark.html