Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Um Apache Spark Shell interativo fornece um ambiente REPL (loop de leitura-execução-impressão) para executar comandos do Spark um de cada vez e ver os resultados. Este processo é útil para desenvolvimento e depuração. O Spark fornece um shell para cada uma de suas linguagens suportadas: Scala, Python e R.
Executar Apache Spark Shell
Use o comando ssh para conectar ao seu cluster. Edite o comando abaixo substituindo CLUSTERNAME pelo nome do cluster e digite o comando:
ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
O Spark fornece shells para Scala (spark-shell) e Python (pyspark). Na sessão 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 qualquer configuração opcional, certifique-se de primeiro revisar a exceção OutOfMemoryError para Apache Spark.
Alguns comandos de exemplo básicos. Escolha a língua 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()
Consultar um arquivo CSV. Observe que o idioma 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")
Exibir resultados:
data.show() data.select($"BuildingID", $"Country").show(10)
data.show() data.select("BuildingID", "Country").show(10)
Sair
:q
exit()
Instâncias SparkSession e SparkContext
Por padrão, quando você executa o Spark Shell, as instâncias de SparkSession e SparkContext são automaticamente instanciadas para você.
Para acessar a instância SparkSession, digite spark
. Para acessar a instância SparkContext, digite sc
.
Parâmetros importantes do shell
O comando Spark Shell (spark-shell
, ou pyspark
) suporta muitos parâmetros de linha de comando. Para ver uma lista completa de parâmetros, inicie o Spark Shell com o switch --help
. Alguns desses parâmetros podem se aplicar apenas ao spark-submit
, que o Spark Shell envolve.
interruptor | descrição | Exemplo |
---|---|---|
--master MASTER_URL |
Especifica a URL mestra. No HDInsight, esse valor é sempre yarn . |
--master yarn |
--jars JAR_LIST |
Lista separada por vírgulas de jars locais para incluir nos classpaths do driver e do executor. No HDInsight, essa lista é composta por caminhos para o sistema de arquivos padrão no Armazenamento do Azure ou no Armazenamento Data Lake. | --jars /path/to/examples.jar |
--packages MAVEN_COORDS |
Lista separada por vírgulas de coordenadas maven de jars para incluir nos classpaths do driver e do executor. Pesquisa o repositório maven local, depois o maven central e, em seguida, quaisquer 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 |
Somente para Python, uma lista separada por vírgulas de arquivos .zip , .egg , ou .py para colocar no PYTHONPATH. |
--pyfiles "samples.py" |
Próximos passos
- Consulte Introdução ao Apache Spark no Azure HDInsight para obter uma visão geral.
- Consulte Criar um cluster Apache Spark no Azure HDInsight para trabalhar com clusters Spark e SparkSQL.
- Consulte O que é o Apache Spark Structured Streaming? para escrever aplicativos que processam dados de streaming com o Spark.