Запуск Apache Spark из оболочки Spark
Интерактивная оболочка Apache Spark предоставляет среду REPL (цикл чтения, выполнения и вывода) для поочередного выполнения команд Spark и просмотра результатов. Этот процесс применяется при развертывании и отладке. Spark предоставляет оболочки для каждого из поддерживаемых языков: Scala, Python и R.
Запуск оболочки Apache Spark
С помощью команды ssh command подключитесь к кластеру. Измените приведенную ниже команду, заменив CLUSTERNAME именем своего кластера, а затем введите команду:
ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
Spark предоставляет оболочки для Scala (spark-shell) и Python (pyspark). В сеансе SSH введите одну из следующих команд:
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
Если вы планируете использовать дополнительные конфигурации, сначала изучите статью Исключение OutOfMemoryError для Apache Spark.
Несколько простых примеров команд. Выберите подходящий язык:
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()
Выполните запрос по CSV-файлу. Обратите внимание, что приведенный ниже код работает для
spark-shell
иpyspark
.spark.read.csv("/HdiSamples/HdiSamples/SensorSampleData/building/building.csv").show()
Выполните запрос по CSV-файлу и сохраните результаты в переменной:
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")
Отобразите результаты:
data.show() data.select($"BuildingID", $"Country").show(10)
data.show() data.select("BuildingID", "Country").show(10)
Выход
:q
exit()
Экземпляры SparkSession и SparkContext
По умолчанию экземпляры SparkSession и SparkContext создаются автоматически при запуске оболочки Spark.
Чтобы получить доступ к экземпляру SparkSession, введите команду spark
. А чтобы получить доступ к экземпляру SparkContext, введите команду sc
.
Важные параметры оболочки
Команды оболочки Spark (spark-shell
или pyspark
) поддерживают несколько параметров командной строки. Чтобы просмотреть полный список параметров, запустите оболочку Spark с параметром --help
. Некоторые из этих параметров могут применяться только к скрипту spark-submit
, для которого создается оболочка Spark.
switch | description | пример |
---|---|---|
--master MASTER_URL |
Позволяет задать основной URL-адрес. В HDInsight всегда используется значение yarn . |
--master yarn |
--jars JAR_LIST |
Список разделенных запятыми локальных JAR-файлов, которые добавляются в пути к классам драйвера и исполнителя. В HDInsight этот список состоит из путей к файловой системе по умолчанию в службе хранилища Azure или в Data Lake Storage. | --jars /path/to/examples.jar |
--packages MAVEN_COORDS |
Список разделенных запятыми координат Maven для JAR-файлов, которые добавляются в пути к классам драйвера и исполнителя. Выполняет поиск локального репозитория Maven, затем центрального репозитория Maven или же любого дополнительного удаленного репозитория, заданного с помощью параметра --repositories . Формат координат: groupId:artifactId:version. |
--packages "com.microsoft.azure:azure-eventhubs:0.14.0" |
--py-files LIST |
Только для Python — разделенный запятыми список .zip файлов , .egg или .py для размещения в PYTHONPATH. |
--pyfiles "samples.py" |
Дальнейшие действия
- Вводную информацию см. в статье Общие сведения об Apache Spark в Azure HDInsight.
- Сведения о работе со SparkSQL и кластерами Spark см. в статье Создание кластера Apache Spark в Azure HDInsight.
- Сведения о создании приложений для обработки потоковых данных с помощью Spark см. в статье Общие сведения о потоковой передаче Apache Spark.