

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Accesso alla shell Spark
<a name="emr-spark-shell"></a>

La shell Spark è basata su Scala REPL (Read-Eval-Print-Loop). e consente di creare programmi Spark in modo interattivo e di inviare lavoro al framework. Puoi accedere alla shell (interprete di comandi) Spark tramite connessione al nodo primario con SSH e richiamando `spark-shell`. Per informazioni su come connettersi al nodo primario, consulta la sezione [Connect to the primary node using SSH](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html) (Connessione al nodo primario tramite SSH) nella *Guida alla gestione di Amazon EMR*. Gli esempi seguenti utilizzano i log di accesso di Apache HTTP Server archiviati in Amazon S3.

**Nota**  
Il bucket utilizzato in questi esempi è disponibile per i client che possono accedere alla regione Stati Uniti orientali (Virginia settentrionale).

 Per impostazione predefinita, la shell Spark crea il proprio [SparkContext](https://spark.apache.org/docs/latest/api/scala/org/apache/spark/SparkContext.html)oggetto chiamato`sc`. È possibile utilizzare questo contesto se è richiesto all'interno del REPL. sqlContextè disponibile anche nella shell ed è un [HiveContext](https://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.sql.hive.HiveContext). 

**Example Utilizzare la shell Spark per conteggiare le occorrenze di una stringa in un file archiviato in Amazon S3**  
In questo esempio viene utilizzato `sc` per leggere un file di testo archiviato in 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.goskope.com-2009-04-13-08-05.log")
```
Spark crea il textFile e la [struttura di dati](https://spark.apache.org/docs/latest/programming-guide.html#resilient-distributed-datasets-rdds) associata. Successivamente, l'esempio conteggia il numero di righe nel file di log con la stringa "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 Usa la shell Python-based Spark per contare le occorrenze di una stringa in un file archiviato in Amazon S3**  
Spark include anche una Python-based shell che puoi usare per prototipare programmi Spark scritti in Python. `pyspark` Proprio come in precedenza`spark-shell`, invoca `pyspark` sul nodo primario; anch'esso ha lo stesso oggetto. [SparkContext](https://spark.apache.org/docs/latest/api/python/reference/api/pyspark.SparkContext.html#pyspark.SparkContext)   

```
>>> 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.goskope.com-2009-04-13-08-05.log")
```
Spark crea il textFile e la [struttura di dati](https://spark.apache.org/docs/latest/programming-guide.html#resilient-distributed-datasets-rdds) associata. Successivamente, l'esempio conteggia il numero di righe nel file di log con la stringa "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
```