

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Acessar o shell do Spark
<a name="emr-spark-shell"></a>

O shell do Spark é baseado no Scala REPL (Read-Eval-Print-Loop). Ele permite criar programas Spark interativamente e enviar trabalhos à estrutura. Você pode acessar o shell do Spark conectando-se ao nó primário com SSH e invocando `spark-shell`. Para obter informações sobre a conexão ao nó primário, consulte [Connect to the primary node using SSH](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html) no *Guia de gerenciamento do Amazon EMR*. Os exemplos a seguir usam logs de acesso do Servidor HTTP Apache armazenados no Amazon S3.

**nota**  
O bucket nesses exemplos está disponível para clientes que podem acessar a região Leste dos EUA (Norte da Virgínia).

 Por padrão, o shell do Spark cria seu próprio [SparkContext](https://spark.apache.org/docs/latest/api/scala/org/apache/spark/SparkContext.html)objeto chamado`sc`. Você pode usar esse contexto se for necessário no REPL. sqlContexttambém está disponível na concha e é uma [HiveContext](https://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.sql.hive.HiveContext). 

**Example Usar o shell do Spark para contar as ocorrências de uma string em um arquivo armazenado no Amazon S3**  
Este exemplo usa `sc` para ler um arquivo de texto armazenado no Amazon S3.  

```
scala> sc
res0: org.apache.spark.SparkContext = org.apache.spark.SparkContext@404721db

scala> val textFile = sc.textFile("s3://elasticmapreduce/samples/hive-ads/tables/impressions/dt=2009-04-13-08-05/ec2-0-51-75-39.amazon.com.rproxy.govskope.us-2009-04-13-08-05.log")
```
O Spark cria o textFile e a [estrutura de dados](https://spark.apache.org/docs/latest/programming-guide.html#resilient-distributed-datasets-rdds) associada. Em seguida, o exemplo conta o número de linhas no arquivo de log com a string "cartoonnetwork.com":  

```
scala> val linesWithCartoonNetwork = textFile.filter(line => line.contains("cartoonnetwork.com")).count()
linesWithCartoonNetwork: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[2] at filter at <console>:23
<snip>
<Spark program runs>
scala> linesWithCartoonNetwork
res2: Long = 9
```

**Example Use o shell do Python-based Spark para contar as ocorrências de uma string em um arquivo armazenado no Amazon S3**  
O Spark também inclui um Python-based shell,`pyspark`, que você pode usar para criar protótipos de programas Spark escritos em Python. Assim como com`spark-shell`, invoque `pyspark` no nó primário; ele também tem o mesmo [SparkContext](https://spark.apache.org/docs/latest/api/python/reference/api/pyspark.SparkContext.html#pyspark.SparkContext)objeto.   

```
>>> sc
<pyspark.context.SparkContext object at 0x7fe7e659fa50>
>>> textfile = sc.textFile("s3://elasticmapreduce/samples/hive-ads/tables/impressions/dt=2009-04-13-08-05/ec2-0-51-75-39.amazon.com.rproxy.govskope.us-2009-04-13-08-05.log")
```
O Spark cria o textFile e a [estrutura de dados](https://spark.apache.org/docs/latest/programming-guide.html#resilient-distributed-datasets-rdds) associada. Em seguida, o exemplo conta o número de linhas no arquivo de log com a string "cartoonnetwork.com".  

```
>>> linesWithCartoonNetwork = textfile.filter(lambda line: "cartoonnetwork.com" in line).count()
15/06/04 17:12:22 INFO lzo.GPLNativeCodeLoader: Loaded native gpl library from the embedded binaries
15/06/04 17:12:22 INFO lzo.LzoCodec: Successfully loaded & initialized native-lzo library [hadoop-lzo rev EXAMPLE]
15/06/04 17:12:23 INFO fs.EmrFileSystem: Consistency disabled, using com.amazon.ws.emr.hadoop.fs.s3n.S3NativeFileSystem as filesystem implementation
<snip>
<Spark program continues>
>>> linesWithCartoonNetwork
9
```