

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Acceso al intérprete de comandos de Spark
<a name="emr-spark-shell"></a>

El intérprete de comandos de Spark se basa en el Scala REPL (Read-Eval-Print-Loop). Le permite crear programas de Spark de forma interactiva y enviar trabajos al marco. Para acceder al intérprete de comandos de Spark, puede conectarse al nodo principal con SSH e invocar `spark-shell`. Para obtener más información sobre cómo conectarse al nodo principal, consulte [Conectarse al nodo principal mediante SSH](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html) en la *Guía de administración de Amazon EMR*. En los siguientes ejemplos se utilizan registros de acceso de Apache HTTP Server almacenados en Amazon S3.

**nota**  
El bucket de estos ejemplos está disponible para los clientes que pueden acceder a la región Este de EE. UU. (Norte de Virginia).

 Por defecto, el shell Spark crea su propio [SparkContext](https://spark.apache.org/docs/latest/api/scala/org/apache/spark/SparkContext.html)objeto llamado`sc`. Puedes usar este contexto si es necesario en el REPL. sqlContexttambién está disponible en la carcasa y es un [HiveContext](https://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.sql.hive.HiveContext). 

**Example Uso del intérprete de comandos de Spark para contar cuántas veces aparece una cadena en un archivo almacenado en Amazon S3**  
En este ejemplo, se utiliza `sc` para leer un archivo de texto almacenado en 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-2009-04-13-08-05.log")
```
Spark crea el textFile y la [estructura de datos](https://spark.apache.org/docs/latest/programming-guide.html#resilient-distributed-datasets-rdds) asociada. A continuación, el ejemplo determina la cantidad de líneas en el archivo de registro con la cadena "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 Utilice el shell Python-based Spark para contar las apariciones de una cadena en un archivo almacenado en Amazon S3**  
Spark también incluye un Python-based shell,`pyspark`, que puedes usar para crear prototipos de programas de Spark escritos en Python. Al igual que ocurre con`spark-shell`, invoca `pyspark` en el nodo principal; también tiene el mismo [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-2009-04-13-08-05.log")
```
Spark crea el textFile y la [estructura de datos](https://spark.apache.org/docs/latest/programming-guide.html#resilient-distributed-datasets-rdds) asociada. A continuación, el ejemplo determina la cantidad de líneas en el archivo de registro con la cadena "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
```