Menjalankan Apache Spark dari Spark Shell

Apache Spark Shell interaktif menyediakan lingkungan REPL (read-execute-print loop/perulangan baca-jalankan-cetak) untuk menjalankan perintah Spark satu per satu dan melihat hasilnya. Proses ini berguna untuk pengembangan dan penelusuran kesalahan (debugging). Spark menyediakan satu shell untuk setiap bahasa yang didukung: Scala, Python, dan R.

Jalankan Apache Spark Shell

  1. Gunakan perintah ssh untuk menyambungkan ke kluster Anda. Edit perintah di bawah ini dengan mengganti CLUSTERNAME dengan nama kluster Anda, lalu masukkan perintah:

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. Spark menyediakan shell untuk Scala (spark-shell), dan Python (pyspark). Di sesi SSH Anda, masukkan salah satu perintah berikut:

    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
    

    Jika Anda ingin menggunakan konfigurasi opsional apa pun, pastikan Anda terlebih dahulu meninjau pengecualian OutOfMemoryError untuk Apache Spark.

  3. Beberapa perintah contoh dasar. Pilih bahasa yang relevan:

    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. Kueri file CSV. Perhatikan bahasa di bawah ini berfungsi untuk spark-shell dan pyspark.

    spark.read.csv("/HdiSamples/HdiSamples/SensorSampleData/building/building.csv").show()
    
  5. Kueri file CSV dan simpan hasilnya dalam variabel:

    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. Tampilkan hasil:

    data.show()
    data.select($"BuildingID", $"Country").show(10)
    
    data.show()
    data.select("BuildingID", "Country").show(10)
    
  7. Keluar

    :q
    
    exit()
    

Instans SparkSession dan SparkContext

Secara default saat Anda menjalankan Spark Shell, instans SparkSession dan SparkContext secara otomatis diinstansiasi untuk Anda.

Untuk mengakses instans SparkSession, masukkan spark. Untuk mengakses instans SparkContext, masukkan sc.

Parameter shell penting

Perintah Spark Shell (spark-shell, atau pyspark) mendukung banyak parameter baris-perintah. Untuk melihat daftar lengkap parameter, mulai Spark Shell dengan pengalih --help. Beberapa parameter ini mungkin hanya berlaku untuk spark-submit, yang dibungkus Spark Shell.

pengalih deskripsi contoh
--master MASTER_URL Menentukan URL master. Dalam HDInsight, nilai ini selalu yarn. --master yarn
--jars JAR_LIST Daftar jar lokal yang dipisahkan koma untuk disertakan pada driver dan classpath pelaksana. Dalam HDInsight, daftar ini terdiri dari jalur ke sistem file default di Azure Storage atau Data Lake Storage. --jars /path/to/examples.jar
--packages MAVEN_COORDS Daftar koordinat maven jar yang dipisahkan koma untuk disertakan pada driver dan classpath pelaksana. Mencari repositori maven lokal, lalu maven central, kemudian repositori jarak jauh tambahan yang ditentukan dengan --repositories. Format untuk koordinat adalah groupId:artifactId:versi. --packages "com.microsoft.azure:azure-eventhubs:0.14.0"
--py-files LIST Hanya untuk Python, daftar file .zip, .egg, atau .py yang dipisahkan koma untuk ditempatkan di PYTHONPATH. --pyfiles "samples.py"

Langkah berikutnya