Udostępnij przez


Uruchamianie platformy Apache Spark z poziomu powłoki Spark

Interaktywna powłoka Apache Spark Shell udostępnia środowisko REPL (read-execute-print loop), które pozwala na uruchamianie poleceń Spark jeden po drugim oraz wyświetlanie wyników. Ten proces jest przydatny do programowania i debugowania. Platforma Spark udostępnia jedną powłokę dla każdego z obsługiwanych języków: Scala, Python i R.

Uruchom powłokę Apache Spark

  1. Użyj polecenia ssh, aby nawiązać połączenie z klastrem. Zmodyfikuj poniższe polecenie, zastępując ciąg CLUSTERNAME nazwą klastra, a następnie wprowadź polecenie:

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. Platforma Spark udostępnia powłoki dla języka Scala (spark-shell) i python (pyspark). W sesji SSH wprowadź jedno z następujących poleceń:

    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
    

    Jeśli zamierzasz użyć dowolnej opcjonalnej konfiguracji, najpierw zapoznaj się z wyjątkiem OutOfMemoryError dla platformy Apache Spark.

  3. Kilka podstawowych przykładowych poleceń. Wybierz odpowiedni język:

    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. Wykonywanie zapytań względem pliku CSV. Zwróć uwagę, że poniższy język działa dla spark-shell i pyspark.

    spark.read.csv("/HdiSamples/HdiSamples/SensorSampleData/building/building.csv").show()
    
  5. Wykonaj zapytanie względem pliku CSV i zapisz wyniki w zmiennej:

    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. Wyświetl wyniki:

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

    :q
    
    exit()
    

Wystąpienia SparkSession i SparkContext

Domyślnie po uruchomieniu powłoki Spark instancje SparkSession i SparkContext są tworzone automatycznie.

Aby uzyskać dostęp do wystąpienia SparkSession, wprowadź wartość spark. Aby uzyskać dostęp do wystąpienia SparkContext, wprowadź wartość sc.

Ważne parametry powłoki

Polecenie powłoki Spark (spark-shell lub pyspark) obsługuje wiele parametrów wiersza polecenia. Aby wyświetlić pełną listę parametrów, uruchom powłokę Spark przy użyciu przełącznika --help. Niektóre z tych parametrów mogą dotyczyć tylko spark-submit, który jest opakowany przez powłokę Spark.

przełącznik opis przykład
--master MASTER_URL Określa główny adres URL. W usłudze HDInsight ta wartość jest zawsze yarn. --master yarn
--jars JAR_LIST Rozdzielona przecinkami lista lokalnych plików JAR do uwzględnienia w ścieżkach klas sterownika i wykonawcy. W usłudze HDInsight ta lista składa się ze ścieżek do domyślnego systemu plików w usłudze Azure Storage lub Data Lake Storage. --jars /path/to/examples.jar
--packages MAVEN_COORDS Rozdzielona przecinkami lista współrzędnych maven plików jar do uwzględnienia na ścieżkach klasy sterownika i funkcji wykonawczej. Przeszukuje lokalne repozytorium maven, a następnie centralne repozytorium maven, a następnie wszelkie dodatkowe repozytoria zdalne określone za pomocą --repositories. Format współrzędnych to groupId:artifactId:version. --packages "com.microsoft.azure:azure-eventhubs:0.14.0"
--py-files LIST Tylko w przypadku języka Python, lista plików .zip, .egg lub .py oddzielona przecinkami, które mają zostać umieszczone na ścieżce PYTHONPATH. --pyfiles "samples.py"

Następne kroki