Ejecución de Apache Spark desde el shell de Spark
Un shell interactivo de Apache Spark proporciona un entorno REPL (bucle leer, ejecutar e imprimir) para ejecutar comandos Spark de uno en uno y ver los resultados. Este proceso es útil para tareas de desarrollo y depuración. Spark proporciona un shell para cada uno de los lenguajes que admite: Scala, Python y R.
Ejecución del shell de Apache Spark
Use el comando SSH para conectarse al clúster. Modifique el comando siguiente: reemplace CLUSTERNAME por el nombre del clúster y, luego, escriba el comando:
ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
Spark proporciona shells para Scala (spark-shell) y Python (pyspark). En su sesión SSH, escriba uno de los siguientes comandos:
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 tiene previsto usar una configuración opcional, asegúrese de revisar primero la excepción OutOfMemoryError de Apache Spark.
Algunos comandos básicos de ejemplo. Elija el lenguaje pertinente:
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()
Consulte un archivo CSV. Tenga en cuenta que el lenguaje siguiente funciona para
spark-shell
ypyspark
.spark.read.csv("/HdiSamples/HdiSamples/SensorSampleData/building/building.csv").show()
Consulte un archivo CSV y almacene los resultados en una 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")
Visualización de resultados:
data.show() data.select($"BuildingID", $"Country").show(10)
data.show() data.select("BuildingID", "Country").show(10)
Salir
:q
exit()
Instancias de objetos SparkSession y SparkContext
De forma predeterminada, cuando se ejecute el shell de Spark, se crea automáticamente las instancias de los objetos SparkSession y SparkContext.
Para acceder a la instancia de SparkSession, escriba spark
. Para acceder a la instancia de SparkContext, escriba sc
.
Parámetros de shell importantes
El comando de shell de Spark (spark-shell
o pyspark
) admite muchos parámetros de línea de comandos. Para ver una lista completa de parámetros, inicie el shell de Spark con el modificador --help
. Algunos de estos parámetros solo se pueden aplicar a spark-submit
, que es el que incluye el shell de Spark.
switch | description | ejemplo |
---|---|---|
--master MASTER_URL |
Especifica la URL principal. En HDInsight, este valor es siempre yarn . |
--master yarn |
--jars JAR_LIST |
Lista separada por comas de archivos JAR locales que se incluirán en las rutas de clase del controlador y el ejecutor. En HDInsight, esta lista se compone de las rutas de acceso al sistema de archivos predeterminado en Azure Storage o Data Lake Storage. | --jars /path/to/examples.jar |
--packages MAVEN_COORDS |
Lista separada por comas de coordenadas de Maven de archivos JAR locales que se incluirán en las rutas de clase del controlador y el ejecutor. Busca en el repositorio de Maven local, luego, en el central y, después, en cualquier repositorio remoto adicional especificado con --repositories . El formato de las coordenadas es idGrupo:idArtefacto:versión. |
--packages "com.microsoft.azure:azure-eventhubs:0.14.0" |
--py-files LIST |
Solo para Python; lista separada por comas de los archivos .zip , .egg o .py que se colocarán en PYTHONPATH. |
--pyfiles "samples.py" |
Pasos siguientes
- Para información general, consulte Introducción a Apache Spark en Azure HDInsight.
- Si quiere trabajar con SparkSQL y los clústeres de Spark, lea Creación de un clúster de Apache Spark en Azure HDInsight.
- Para escribir aplicaciones que procesen datos de streaming con Spark, consulte el artículo que explica qué es el streaming estructurado de Apache Spark.