

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Accès au shell de Spark
<a name="emr-spark-shell"></a>

Le shell Spark est basé sur le Scala REPL (Read-Eval-Print-Loop). Il vous permet de créer des programmes Spark de façon interactive et de soumettre du travail à l'infrastructure. Vous pouvez accéder au shell de Spark en vous connectant au nœud primaire avec SSH et en invoquant `spark-shell`. Pour plus d'informations sur la connexion au nœud primaire, consultez la section [Connexion au nœud primaire à l'aide de SSH](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html) dans le *Guide de gestion Amazon EMR*. Les exemples suivants utilisent les journaux d'accès du serveur HTTP Apache stockés dans Amazon S3.

**Note**  
Le compartiment utilisé dans ces exemples est disponible pour les clients ayant accès à la région USA Est (Virginie du Nord).

 Par défaut, le shell Spark crée son propre [SparkContext](https://spark.apache.org/docs/1.3.1/api/scala/index.html#org.apache.spark.SparkContext)objet appelé`sc`. Vous pouvez utiliser ce contexte s'il est requis dans le REPL. sqlContextest également disponible en coque et il s'agit d'un [HiveContext](https://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.sql.hive.HiveContext). 

**Example Utilisation du shell de Spark pour compter les occurrences d'une chaîne dans un fichier stocké dans Amazon S3**  
Cet exemple utilise `sc` pour lire un fichier texte stocké dans 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.ca-2009-04-13-08-05.log")
```
Spark crée le fichier texte et la [structure de données](https://spark.apache.org/docs/latest/programming-guide.html#resilient-distributed-datasets-rdds) associée. Ensuite, l'exemple compte le nombre de lignes figurant dans le fichier journal avec la chaîne « 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 Utilisation du shell de Spark basé sur Python pour compter les occurrences d'une chaîne dans un fichier stocké dans Amazon S3**  
Spark inclut également un shell basé sur Python, `pyspark`, que vous pouvez utiliser pour créer un prototype de programmes Spark écrits en Python. Tout comme avec`spark-shell`, invoke `pyspark` sur le nœud principal ; il possède également le même [SparkContext](https://spark.apache.org/docs/latest/api/python/reference/api/pyspark.SparkContext.html#pyspark.SparkContext)objet.   

```
>>> 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.ca-2009-04-13-08-05.log")
```
Spark crée le fichier texte et la [structure de données](https://spark.apache.org/docs/latest/programming-guide.html#resilient-distributed-datasets-rdds) associée. Ensuite, l'exemple compte le nombre de lignes figurant dans le fichier journal avec la chaîne « 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
```