Ausführen von Apache Spark aus der Spark-Shell
Eine interaktive Apache Spark-Shell bietet eine REPL-Umgebung (Read-Execute-Print-Loop, „Lesen-Ausführen-Anzeigen“-Schleife), um Spark-Befehle nacheinander auszuführen und die Ergebnisse anzuzeigen. Dieser Vorgang ist nützlich für Entwicklung und Debuggen. Spark bietet für jede unterstützte Sprache eine Shell: Scala, Python und R.
Ausführen einer Apache Spark-Shell
Verwenden Sie einen ssh-Befehl zum Herstellen der Verbindung mit dem Cluster. Bearbeiten Sie den folgenden Befehl, indem Sie CLUSTERNAME durch den Namen Ihres Clusters ersetzen, und geben Sie den Befehl dann ein:
ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
Spark umfasst Shells für Scala (spark-shell) und Python (pyspark). Geben Sie in der SSH-Sitzung einen der folgenden Befehle ein:
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
Wenn Sie beabsichtigen, eine optionale Konfiguration zu verwenden, sollten Sie zunächst die Informationen zur OutOfMemoryError-Ausnahme für Apache Spark lesen.
Einige grundlegende Beispielbefehle. Wählen Sie die relevante Sprache aus:
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()
Fragen Sie eine CSV-Datei ab. Beachten Sie, dass die nachstehende Sprache für
spark-shell
undpyspark
funktioniert.spark.read.csv("/HdiSamples/HdiSamples/SensorSampleData/building/building.csv").show()
Abfragen einer CSV-Datei und Speichern der Ergebnisse in einer 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")
Anzeigen der Ergebnisse:
data.show() data.select($"BuildingID", $"Country").show(10)
data.show() data.select("BuildingID", "Country").show(10)
Beenden
:q
exit()
SparkSession- und SparkContext-Instanzen
Beim Ausführen der Spark-Shell werden standardmäßig automatisch Instanzen von SparkSession und SparkContext für Sie erzeugt.
Um auf die SparkSession-Instanz zuzugreifen, geben Sie spark
ein. Um auf die SparkContext-Instanz zuzugreifen, geben Sie sc
ein.
Wichtige Shellparameter
Der Spark-Shell-Befehl (spark-shell
oder pyspark
) unterstützt viele Befehlszeilenparameter. Um eine vollständige Liste der Parameter anzuzeigen, starten Sie die Spark-Shell mit dem Schalter --help
. Einige dieser Parameter gelten möglicherweise nur für spark-submit
, den die Spark-Shell umschließt.
switch | description | Beispiel |
---|---|---|
--master MASTER_URL |
Gibt die Master-URL an. In HDInsight ist dieser Wert immer yarn . |
--master yarn |
--jars JAR_LIST |
Durch Trennzeichen getrennte Liste der lokalen JAR-Dateien zum Einschließen der Treiber- und Executorklassenpfade. In HDInsight besteht diese Liste aus Pfaden zum Standarddateisystem in Azure Storage oder Data Lake Storage. | --jars /path/to/examples.jar |
--packages MAVEN_COORDS |
Durch Trennzeichen getrennte Liste der Maven-Koordinaten von JAR-Dateien zum Einschließen der Treiber- und Executorklassenpfade. Durchsucht zuerst das lokale, anschließend das zentrale Maven-Repository und dann etwaige zusätzliche Remote-Repositorys, die mit --repositories angegeben werden. Das Format für die Koordinaten ist groupId:artifactId:version. |
--packages "com.microsoft.azure:azure-eventhubs:0.14.0" |
--py-files LIST |
Nur für Python eine durch Trennzeichen getrennte Liste der im PYTHONPATH zu platzierenden .zip -, .egg - oder .py -Dateien. |
--pyfiles "samples.py" |
Nächste Schritte
- Eine Übersicht finden Sie unter Einführung in Apache Spark in Azure HDInsight.
- Informationen zum Arbeiten mit Spark-Clustern und SparkSQL finden Sie unter Erstellen eines Apache Spark-Clusters in Azure HDInsight.
- Informationen zum Schreiben von Anwendungen, die Streamingdaten mit Spark verarbeiten, finden Sie unter Übersicht über strukturierte Apache Spark-Streamings.