Spuštění Apache Sparku z prostředí Spark

Interaktivní prostředí Apache Spark Shell poskytuje prostředí REPL (read-execute-print loop) pro spouštění příkazů Sparku po jednom a zobrazení výsledků. Tento proces je užitečný pro vývoj a ladění. Spark poskytuje jedno prostředí pro každý z podporovaných jazyků: Scala, Python a R.

Spuštění prostředí Apache Spark Shell

  1. Pomocí příkazu ssh se připojte ke clusteru. Upravte následující příkaz tak, že clusterNAME nahradíte názvem vašeho clusteru a pak zadáte příkaz:

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. Spark poskytuje prostředí pro Scala (spark-shell) a Python (pyspark). V relaci SSH zadejte jeden z následujících příkazů:

    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
    

    Pokud máte v úmyslu použít libovolnou volitelnou konfiguraci, nezapomeňte si nejprve projít výjimku OutOfMemoryError pro Apache Spark.

  3. Několik základních ukázkových příkazů. Zvolte příslušný jazyk:

    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. Zadejte dotaz na soubor CSV. Všimněte si, že níže uvedený jazyk funguje pro spark-shell a pyspark.

    spark.read.csv("/HdiSamples/HdiSamples/SensorSampleData/building/building.csv").show()
    
  5. Zadejte dotaz na soubor CSV a uložte výsledky do proměnné:

    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. Zobrazit výsledky:

    data.show()
    data.select($"BuildingID", $"Country").show(10)
    
    data.show()
    data.select("BuildingID", "Country").show(10)
    
  7. Ukončit

    :q
    
    exit()
    

Instance SparkSession a SparkContext

Ve výchozím nastavení se při spuštění prostředí Spark Shell automaticky vytvoří instance SparkSession a SparkContext.

Pokud chcete získat přístup k instanci SparkSession, zadejte spark. Pokud chcete získat přístup k instanci SparkContext, zadejte sc.

Důležité parametry prostředí

Příkaz Prostředí Spark (spark-shellnebo pyspark) podporuje mnoho parametrů příkazového řádku. Pokud chcete zobrazit úplný seznam parametrů, spusťte Prostředí Spark pomocí přepínače --help. Některé z těchto parametrů se můžou vztahovat jenom na spark-submit, které prostředí Spark zabalí.

switch description příklad
--master MASTER_URL Určuje hlavní adresu URL. Ve službě HDInsight je tato hodnota vždy yarn. --master yarn
--jars JAR_LIST Čárkami oddělený seznam místních souborů JAR, které se mají zahrnout do cest k třídám ovladače a exekutoru. Ve službě HDInsight se tento seznam skládá z cest k výchozímu systému souborů ve službě Azure Storage nebo Data Lake Storage. --jars /path/to/examples.jar
--packages MAVEN_COORDS Čárkami oddělený seznam souřadnic mavenu souborů JAR, které se mají zahrnout do cest k třídám ovladače a exekutoru. Prohledá místní úložiště Maven, pak maven central a všechna další vzdálená úložiště zadaná pomocí --repositories. Formát souřadnic je groupId:artifactId:version. --packages "com.microsoft.azure:azure-eventhubs:0.14.0"
--py-files LIST Pouze v Pythonu je seznam souborů oddělených .zipčárkami , .eggnebo .py , které se mají umístit do cesty PYTHONPATH. --pyfiles "samples.py"

Další kroky