web-dev-qa-db-fra.com

Lecture de fichiers CSV dans Zeppelin à l’aide de spark-csv

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!

11
fabsta

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. 

14
  1. Accédez à l'onglet Interprète, cliquez sur Informations sur le référentiel, ajoutez un référentiel et définissez l'URL sur http://dl.bintray.com/spark-packages/maven
  2. Faites défiler jusqu'au paragraphe interprète spark, cliquez sur Éditer, descendez un peu jusqu'au champ artefact et ajoutez "com.databricks: spark-csv_2.10: 1.2.0" ou une version plus récente. Puis redémarrez l'interprète lorsque cela vous est demandé.
  3. 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:

  • exigences de la bibliothèque auto-documentée dans le cahier;
  • chargement de la bibliothèque par note (et possible par utilisateur).

La tendance est maintenant de garder% dep, aussi ne faut-il pas la considérer comme dépréciée pour le moment.

8

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.

4
sag

Vous pouvez ajouter des fichiers jar sous les dépendances de Spark Interpreter:

  1. Cliquez sur le menu "Interprète" dans la barre de navigation.
  2. Cliquez sur le bouton 'Editer' pour interpréter Spark.
  3. Remplir les artefacts et exclure les champs.
  4. Appuyez sur "Enregistrer"
1
Gilad

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.

0
Zack

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

0
lapolonio