Execute o Apache Spark no Shell Spark
Interativo Apache Spark Shell fornece um ambiente de REPL (read-executar-print loop) para executar um comando Spark por vez e ver os resultados. Esse processo é útil para desenvolvimento e depuração. O Spark fornece um shell para cada um dos idiomas com suporte: Scala, Python e R.
Executar um Shell do Apache Spark
Use o comando ssh para se conectar ao cluster. Edite o comando abaixo substituindo CLUSTERNAME pelo nome do cluster e, em seguida, insira o comando:
ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
O Spark fornece shells para as linguagens Scala (spark-shell) e Python (pyspark). Na sessão do SSH, insira um dos seguintes comandos:
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
Se você pretende usar alguma configuração opcional, verifique primeiro a Exceção OutOfMemoryError para o Apache Spark.
Alguns comandos de exemplo básicos. Escolha a linguagem relevante:
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()
Consulte um arquivo CSV. Observe que a linguagem abaixo funciona para
spark-shell
epyspark
.spark.read.csv("/HdiSamples/HdiSamples/SensorSampleData/building/building.csv").show()
Consulte um arquivo CSV e armazene os resultados na variável:
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")
Exiba os resultados:
data.show() data.select($"BuildingID", $"Country").show(10)
data.show() data.select("BuildingID", "Country").show(10)
Fechar
:q
exit()
Instâncias SparkSession e SparkContext
Por padrão, ao executar o shell do Spark, as instâncias SparkSession e SparkContext são automaticamente instanciadas.
Para acessar a instância de SparkSession, digite spark
. Para acessar a instância de SparkContext, digite sc
.
Parâmetros de shell importantes
O comando Shell do Spark (spark-shell
ou pyspark
) dá suporte a vários parâmetros de linha de comando. Para ver uma lista completa de parâmetros, inicie o shell do Spark com a opção --help
. Alguns desses parâmetros podem se aplicar somente a spark-submit
, que o shell do Spark encapsula.
switch | descrição | exemplo |
---|---|---|
--master MASTER_URL |
Especifica a URL mestre. No HDInsight, esse valor é sempre yarn . |
--master yarn |
--jars JAR_LIST |
Lista separada por vírgulas de jars locais a ser incluída em classpaths de driver e executor. No HDInsight, essa lista é composta de caminhos para o sistema de arquivos padrão no Armazenamento do Microsoft Azure ou no Data Lake Storage. | --jars /path/to/examples.jar |
--packages MAVEN_COORDS |
Lista separada por vírgulas de coordenadas maven de jars para incluir nos classpaths de driver e executor. Pesquisa o repositório local maven e, em seguida, o maven central e todos os repositórios remotos adicionais especificados com --repositories . O formato das coordenadas é groupId:artifactId:version. |
--packages "com.microsoft.azure:azure-eventhubs:0.14.0" |
--py-files LIST |
Apenas para o Python, uma lista separada por vírgula de arquivos .zip , .egg ou .py a ser colocada no PYTHONPATH. |
--pyfiles "samples.py" |
Próximas etapas
- Ver Introdução ao Apache Spark no Azure HDInsight para uma visão geral.
- Consulte Criar um cluster Apache Spark no Azure HDInsight para trabalhar com clusters Spark e SparkSQL.
- Ver o que é o Streaming estruturado do Apache Spark? para gravar aplicativos que processam dados de streaming com o Spark.