Uruchamianie platformy Apache Spark z poziomu powłoki Spark
Interaktywna powłoka Apache Spark zapewnia środowisko REPL (read-execute-print loop) do uruchamiania poleceń platformy Spark po jednym naraz i wyświetlania wyników. Ten proces jest przydatny w przypadku programowania i debugowania. Platforma Spark udostępnia jedną powłokę dla każdego z obsługiwanych języków: Scala, Python i R.
Uruchamianie powłoki Platformy Apache Spark
Użyj polecenia ssh , aby nawiązać połączenie z klastrem. Zmodyfikuj poniższe polecenie, zastępując ciąg CLUSTERNAME nazwą klastra, a następnie wprowadź polecenie:
ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
Platforma Spark udostępnia powłoki dla języka Scala (spark-shell) i języka Python (pyspark). W sesji SSH wprowadź jedno z następujących poleceń:
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
Jeśli zamierzasz użyć dowolnej konfiguracji opcjonalnej, najpierw zapoznaj się z wyjątkiem OutOfMemoryError dla platformy Apache Spark.
Kilka podstawowych przykładowych poleceń. Wybierz odpowiedni język:
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()
Wykonywanie zapytań względem pliku CSV. Zwróć uwagę, że poniższy język działa dla języków
spark-shell
ipyspark
.spark.read.csv("/HdiSamples/HdiSamples/SensorSampleData/building/building.csv").show()
Wykonaj zapytanie dotyczące pliku CSV i zapisz wyniki w zmiennej:
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")
Wyświetl wyniki:
data.show() data.select($"BuildingID", $"Country").show(10)
data.show() data.select("BuildingID", "Country").show(10)
Zakończ
:q
exit()
Wystąpienia sparkSession i SparkContext
Domyślnie po uruchomieniu powłoki Spark wystąpienia sparkSession i SparkContext są tworzone automatycznie.
Aby uzyskać dostęp do wystąpienia sparkSession, wprowadź .spark
Aby uzyskać dostęp do wystąpienia sparkContext, wprowadź .sc
Ważne parametry powłoki
Polecenie powłoki spark (spark-shell
lub pyspark
) obsługuje wiele parametrów wiersza polecenia. Aby wyświetlić pełną listę parametrów, uruchom powłokę Spark za pomocą przełącznika --help
. Niektóre z tych parametrów mogą dotyczyć spark-submit
tylko elementu , który opakowuje powłoka Spark.
switch | description (opis) | przykład |
---|---|---|
--master MASTER_URL |
Określa główny adres URL. W usłudze HDInsight ta wartość jest zawsze yarn . |
--master yarn |
--jars JAR_LIST |
Rozdzielona przecinkami lista lokalnych plików JAR do uwzględnienia w ścieżkach klas sterownika i funkcji wykonawczej. W usłudze HDInsight ta lista składa się ze ścieżek do domyślnego systemu plików w usłudze Azure Storage lub Data Lake Storage. | --jars /path/to/examples.jar |
--packages MAVEN_COORDS |
Rozdzielona przecinkami lista współrzędnych maven plików jar do uwzględnienia w ścieżkach klas sterowników i funkcji wykonawczej. Przeszukuje lokalne repozytorium maven, a następnie centralę programu Maven, a następnie wszelkie dodatkowe repozytoria zdalne określone za pomocą polecenia --repositories . Format współrzędnych to groupId:artifactId:version. |
--packages "com.microsoft.azure:azure-eventhubs:0.14.0" |
--py-files LIST |
Tylko w przypadku języka Python rozdzielona przecinkami lista .zip plików , .egg lub .py umieszczana na ścieżce PYTHONPATH. |
--pyfiles "samples.py" |
Następne kroki
- Aby zapoznać się z omówieniem, zobacz Introduction to Apache Spark on Azure HDInsight (Wprowadzenie do platformy Apache Spark w usłudze Azure HDInsight ).
- Zobacz Tworzenie klastra Apache Spark w usłudze Azure HDInsight , aby pracować z klastrami Spark i platformą SparkSQL.
- Zobacz Co to jest przesyłanie strumieniowe ze strukturą platformy Apache Spark? aby napisać aplikacje przetwarzające dane przesyłane strumieniowo za pomocą platformy Spark.