Aracılığıyla paylaş


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

  1. 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
    
  2. 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.

  3. 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()
    
  4. CSV dosyasını sorgulama. Aşağıdaki dilin ve pysparkiçin spark-shell çalıştığını unutmayın.

    spark.read.csv("/HdiSamples/HdiSamples/SensorSampleData/building/building.csv").show()
    
  5. 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")
    
  6. Sonuçları görüntüle:

    data.show()
    data.select($"BuildingID", $"Country").show(10)
    
    data.show()
    data.select("BuildingID", "Country").show(10)
    
  7. Çı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-shellveya pyspark) birçok komut satırı parametresini destekler. Parametrelerin tam listesini görmek için Spark Shell'i anahtarıyla --helpbaşlatın. Bu parametrelerden bazıları yalnızca Spark Kabuğu'nun sarmaladığı öğesine spark-submituygulanabilir.

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 --repositoriesbelirtilen 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 , .eggveya .py dosyalarının .zipvirgülle ayrılmış bir listesi. --pyfiles "samples.py"

Sonraki adımlar