Eseguire Apache Spark dalla shell Spark
Una shell Apache Spark interattiva fornisce un ambiente REPL (Read-Execute-Print Loop, ciclo di lettura-esecuzione-stampa) per eseguire i comandi di Spark uno alla volta e visualizzare i risultati. Questo processo è utile per lo sviluppo e il debug. Spark fornisce una shell per ognuno dei linguaggi supportati: Scala, Python e R.
Eseguire una Shell Apache Spark
Usare il comando ssh per connettersi al cluster. Modificare il comando seguente sostituendo CLUSTERNAME con il nome del cluster in uso e quindi immettere il comando:
ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
Spark fornisce shell per Scala (spark-shell) e Python (pyspark). Nella sessione SSH immettere uno dei comandi seguenti:
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
Se si intende usare una configurazione facoltativa, assicurarsi di esaminare prima di tutto l'eccezione OutOfMemoryError per Apache Spark.
Alcuni comandi di esempio di base. Scegliere la lingua 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()
Eseguire una query su un file CSV. Si noti che la lingua seguente funziona per
spark-shell
epyspark
.spark.read.csv("/HdiSamples/HdiSamples/SensorSampleData/building/building.csv").show()
Eseguire una query su un file CSV e archiviare i risultati in una variabile:
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")
Visualizzare i risultati:
data.show() data.select($"BuildingID", $"Country").show(10)
data.show() data.select("BuildingID", "Country").show(10)
Esci
:q
exit()
Istanze di SparkSession e SparkContext
Per impostazione predefinita, quando si esegue la shell Spark vengono create automaticamente le istanze di SparkSession e SparkContext.
Per accedere all'istanza di SparkSession, immettere spark
. Per accedere all'istanza di SparkContext, immettere sc
.
Parametri importanti della shell
Il comando Spark Shell (spark-shell
o pyspark
) supporta molti parametri della riga di comando. Per visualizzare un elenco completo dei parametri, avviare la shell Spark con l'opzione --help
. Alcuni di questi parametri possono essere applicati solo a spark-submit
, che la shell spark esegue il wrapping.
switch | description | esempio |
---|---|---|
--master MASTER_URL |
Specifica l'URL master. In HDInsight questo valore è sempre yarn . |
--master yarn |
--jars JAR_LIST |
Elenco delimitato da virgole di file JAR locali da includere nei percorsi di classe di driver ed executor. In HDInsight questo elenco è composto da percorsi al file system predefinito in Archiviazione di Azure o Data Lake Storage. | --jars /path/to/examples.jar |
--packages MAVEN_COORDS |
Elenco delimitato da virgole di coordinate Maven da includere nei percorsi di classe di driver ed executor. Viene eseguita la ricerca nel repository Maven locale, quindi nel repository Maven centrale e in eventuali repository remoti aggiuntivi specificati con --repositories . Il formato per le coordinate è IDgruppo:IDelemento:versione. |
--packages "com.microsoft.azure:azure-eventhubs:0.14.0" |
--py-files LIST |
Solo per Python, un elenco delimitato da virgole di .zip file , .egg o .py da inserire in PYTHONPATH. |
--pyfiles "samples.py" |
Passaggi successivi
- Vedere Introduzione ad Apache Spark in HDInsight per una panoramica.
- Vedere Creare un cluster Apache Spark in Azure HDInsight per usare cluster Spark e SparkSQL.
- Vedere Informazioni sullo streaming strutturato Apache Spark per scrivere applicazioni che elaborano i dati di streaming con Spark.