Spark Kabuğu'ndan Apache Spark çalıştırma
Etkileşimli bir Apache Spark Shell, Spark komutlarını teker teker çalıştırmak ve sonuçları görmek için bir REPL (okuma-yürütme-yazdırma döngüsü) ortamı sağlar. Bu işlem geliştirme ve hata ayıklama için kullanışlıdır. Spark desteklenen dillerin her biri için bir kabuk sağlar: Scala, Python ve R.
Apache Spark Shell çalıştırma
Kümenize bağlanmak için ssh komutunu kullanın. CLUSTERNAME değerini kümenizin adıyla değiştirerek aşağıdaki komutu düzenleyin ve komutu girin:
ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
Spark, Scala (spark-shell) ve Python (pyspark) için kabuklar sağlar. SSH oturumunuzda aşağıdaki komutlardan birini girin:
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
İsteğe bağlı bir yapılandırma kullanmak istiyorsanız, önce Apache Spark için OutOfMemoryError özel durumunu gözden geçirmeyi deneyin.
Birkaç temel örnek komut. İlgili dili seçin:
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 dosyasını sorgulama. Aşağıdaki dilin ve
pyspark
içinspark-shell
çalıştığını unutmayın.spark.read.csv("/HdiSamples/HdiSamples/SensorSampleData/building/building.csv").show()
CSV dosyasını sorgulayın ve sonuçları değişken olarak depolayın:
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")
Sonuçları görüntüle:
data.show() data.select($"BuildingID", $"Country").show(10)
data.show() data.select("BuildingID", "Country").show(10)
Çıkış
:q
exit()
SparkSession ve SparkContext örnekleri
Varsayılan olarak Spark Shell'i çalıştırdığınızda SparkSession ve SparkContext örnekleri sizin için otomatik olarak oluşturulur.
SparkSession örneğine erişmek için girin spark
. SparkContext örneğine erişmek için girin sc
.
Önemli kabuk parametreleri
Spark Shell komutu (spark-shell
veya pyspark
) birçok komut satırı parametresini destekler. Parametrelerin tam listesini görmek için Spark Shell'i anahtarıyla --help
başlatın. Bu parametrelerden bazıları yalnızca Spark Kabuğu'nun sarmaladığı öğesine spark-submit
uygulanabilir.
switch | açıklama | örnek |
---|---|---|
--master MASTER_URL |
Ana URL'yi belirtir. HDInsight'ta bu değer her zaman yarn şeklindedir. |
--master yarn |
--jars JAR_LIST |
Sürücü ve yürütücü sınıf yollarına eklenecek yerel jar'ların virgülle ayrılmış listesi. HDInsight'ta bu liste, Azure Depolama veya Data Lake Storage'daki varsayılan dosya sisteminin yollarından oluşur. | --jars /path/to/examples.jar |
--packages MAVEN_COORDS |
Sürücü ve yürütücü sınıf yollarına eklenecek jar'ların maven koordinatlarının virgülle ayrılmış listesi. Yerel maven deposunda, ardından maven central'da, ardından ile --repositories belirtilen ek uzak depolarda arama yapın. Koordinatların biçimi groupId:artifactId:version şeklindedir. |
--packages "com.microsoft.azure:azure-eventhubs:0.14.0" |
--py-files LIST |
Yalnızca Python için, PYTHONPATH'e yerleştirecek , .egg veya .py dosyalarının .zip virgülle ayrılmış bir listesi. |
--pyfiles "samples.py" |
Sonraki adımlar
- Genel bakış için bkz. Azure HDInsight'ta Apache Spark'a giriş .
- Bkz. Spark kümeleri ve SparkSQL ile çalışmak için Azure HDInsight'ta Apache Spark kümesi oluşturma.
- Spark ile akış verilerini işleyen uygulamalar yazmak için bkz. Apache Spark Yapılandırılmış Akış nedir?
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin