Share via


Exécuter Apache Spark depuis l’interpréteur de commandes Spark

Un interpréteur de commandes Apache Spark interactif fournit un environnement REPL (boucle de lecture-exécution-impression) pour l’exécution des commandes Spark les unes après les autres et l’affichage des résultats. Ce processus est utile pour le développement et le débogage. Spark fournit un interpréteur de commandes pour chacune des langues qu’il prend en charge : Scala, Python et R.

Exécuter un interpréteur de commandes Apache Spark

  1. Utilisez la commande ssh pour vous connecter à votre cluster. Modifiez la commande ci-dessous en remplaçant CLUSTERNAME par le nom de votre cluster, puis entrez la commande :

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. Spark fournit des interpréteurs de commandes pour Scala (spark-shell) et Python (pyspark). Dans votre session SSH, entrez une des commandes suivantes :

    spark-shell
    
    # Optional configurations
    # spark-shell --num-executors 4 --executor-memory 4g --executor-cores 2 --driver-memory 8g --driver-cores 4
    
    pyspark
    
    # Optional configurations
    # pyspark --num-executors 4 --executor-memory 4g --executor-cores 2 --driver-memory 8g --driver-cores 4
    

    Si vous envisagez d’utiliser une configuration facultative, commencez par consulter Exception OutOfMemoryError pour Apache Spark.

  3. Voici quelques exemples de commandes de base. Choisissez le langage approprié :

    val textFile = spark.read.textFile("/example/data/fruits.txt")
    textFile.first()
    textFile.filter(line => line.contains("apple")).show()
    
    textFile = spark.read.text("/example/data/fruits.txt")
    textFile.first()
    textFile.filter(textFile.value.contains("apple")).show()
    
  4. Interrogez un fichier CSV. Notez que le langage ci-dessous fonctionne pour spark-shell et pyspark.

    spark.read.csv("/HdiSamples/HdiSamples/SensorSampleData/building/building.csv").show()
    
  5. Interrogez un fichier CSV et stockez les résultats dans une variable :

    var data = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("/HdiSamples/HdiSamples/SensorSampleData/building/building.csv")
    
    data = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("/HdiSamples/HdiSamples/SensorSampleData/building/building.csv")
    
  6. Affichez les résultats :

    data.show()
    data.select($"BuildingID", $"Country").show(10)
    
    data.show()
    data.select("BuildingID", "Country").show(10)
    
  7. Quitter

    :q
    
    exit()
    

Instances de SparkSession et SparkContext

Par défaut, lorsque vous exécutez l’interpréteur de commandes, des instances de SparkSession et SparkContext sont automatiquement instanciées pour vous.

Pour accéder à l’instance de SparkSession, entrez spark. Pour accéder à l’instance de SparkContext, entrez sc.

Paramètres importants d’interpréteur de commandes

La commande d’interpréteur de commandes Spark (spark-shell ou pyspark) prend en charge de nombreux paramètres de ligne de commande. Pour afficher une liste complète des paramètres, démarrez l’interpréteur de commandes Spark avec le commutateur --help. Certains de ces paramètres peuvent s’appliquer uniquement à spark-submit, que l’interpréteur de commandes Spark encapsule.

switch description exemple
--master MASTER_URL Spécifie l’URL principale. Dans HDInsight, cette valeur est toujours yarn. --master yarn
--jars JAR_LIST Liste séparée par des virgules des fichiers JAR locaux à inclure dans les classpaths du pilote et de l’exécuteur. Dans HDInsight, cette liste est composée de chemins au système de fichiers par défaut dans Data Lake Storage ou Stockage Azure. --jars /path/to/examples.jar
--packages MAVEN_COORDS Liste séparée par des virgules des coordonnées Maven des fichiers JAR à inclure dans les classpaths du pilote et de l’exécuteur. Recherche dans le référentiel Maven local, puis dans le référentiel Maven central, et enfin dans tout autre référentiel distant spécifié avec --repositories. Le format des coordonnées est groupId:artifactId:version. --packages "com.microsoft.azure:azure-eventhubs:0.14.0"
--py-files LIST Pour Python uniquement, une liste séparée par des virgules des fichiers .zip, .egg ou .py à placer dans le PYTHONPATH. --pyfiles "samples.py"

Étapes suivantes