Köra Apache Spark från Spark Shell
Ett interaktivt Apache Spark Shell tillhandahåller en REPL-miljö (read-execute-print loop) för att köra Spark-kommandon en i taget och se resultatet. Den här processen är användbar för utveckling och felsökning. Spark tillhandahåller ett gränssnitt för vart och ett av de språk som stöds: Scala, Python och R.
Köra ett Apache Spark-gränssnitt
Använd ssh-kommandot för att ansluta till klustret. Redigera kommandot nedan genom att ersätta CLUSTERNAME med namnet på klustret och ange sedan kommandot:
ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
Spark tillhandahåller gränssnitt för Scala (spark-shell) och Python (pyspark). I SSH-sessionen anger du något av följande kommandon:
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
Om du tänker använda valfri konfiguration bör du först granska OutOfMemoryError-undantaget för Apache Spark.
Några grundläggande exempelkommandon. Välj relevant språk:
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()
Fråga en CSV-fil. Observera att språket nedan fungerar för
spark-shell
ochpyspark
.spark.read.csv("/HdiSamples/HdiSamples/SensorSampleData/building/building.csv").show()
Fråga en CSV-fil och lagra resultat i variabeln:
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")
Visa resultat:
data.show() data.select($"BuildingID", $"Country").show(10)
data.show() data.select("BuildingID", "Country").show(10)
Avsluta
:q
exit()
SparkSession- och SparkContext-instanser
Som standard instansieras instanser av SparkSession och SparkContext automatiskt åt dig när du kör Spark Shell.
Om du vill komma åt SparkSession-instansen anger du spark
. Om du vill komma åt SparkContext-instansen anger du sc
.
Viktiga gränssnittsparametrar
Spark Shell-kommandot (spark-shell
eller pyspark
) stöder många kommandoradsparametrar. Om du vill se en fullständig lista över parametrar startar du Spark Shell med växeln --help
. Vissa av dessa parametrar kan bara gälla för spark-submit
, som Spark Shell omsluter.
växla | beskrivning | Exempel |
---|---|---|
--master MASTER_URL |
Anger huvud-URL:en. I HDInsight är det här värdet alltid yarn . |
--master yarn |
--jars JAR_LIST |
Kommaavgränsad lista över lokala jar-filer som ska ingå i klassökvägarna för drivrutin och executor. I HDInsight består den här listan av sökvägar till standardfilsystemet i Azure Storage eller Data Lake Storage. | --jars /path/to/examples.jar |
--packages MAVEN_COORDS |
Kommaavgränsad lista över maven-koordinater för jar-filer som ska ingå i klassökvägarna för drivrutin och executor. Söker i den lokala maven-lagringsplatsen, sedan maven central och sedan eventuella ytterligare fjärrlagringsplatser som anges med --repositories . Formatet för koordinaterna är groupId:artifactId:version. |
--packages "com.microsoft.azure:azure-eventhubs:0.14.0" |
--py-files LIST |
Endast för Python, en kommaavgränsad lista över .zip , .egg eller .py filer som ska läggas till i PYTHONPATH. |
--pyfiles "samples.py" |
Nästa steg
- En översikt finns i Introduktion till Apache Spark på Azure HDInsight .
- Se Skapa ett Apache Spark-kluster i Azure HDInsight för att arbeta med Spark-kluster och SparkSQL.
- Se Vad är Apache Spark Structured Streaming? för att skriva program som bearbetar strömmande data med Spark.