

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.

# Usar cuadernos multilingües con kernels de Spark
<a name="emr-multi-language-kernels"></a>

Cada kernel de cuadernos de Jupyter tiene un lenguaje predeterminado. Por ejemplo, el idioma predeterminado del núcleo de Spark es Scala y el idioma predeterminado de PySpark los núcleos es Python. Con Amazon EMR 6.4.0 y las versiones posteriores, EMR Studio admite los cuadernos de varios lenguajes. Esto significa que cada kernel de EMR Studio puede admitir los siguientes lenguajes además del lenguaje predeterminado: Python, Spark, R y Spark SQL.

Para activar esta característica, especifique uno de los siguientes comandos magic al principio de cualquier celda.


****  

| Idioma | Comando | 
| --- | --- | 
| Python | `%%pyspark` | 
| Scala | `%%scalaspark` | 
| R | `%%rspark` No se admite para cargas de trabajo interactivas con EMR sin servidor. | 
| Spark SQL | `%%sql` | 

Cuando se invocan, estos comandos ejecutan toda la celda dentro de la misma sesión de Spark utilizando el intérprete del lenguaje correspondiente.

La `%%pyspark` celda magic permite a los usuarios escribir PySpark código en todos los núcleos de Spark.

```
%%pyspark
a = 1
```

La magic de celda `%%sql` permite a los usuarios ejecutar código Spark-SQL en todos los kernels de Spark.

```
%%sql
SHOW TABLES
```

La magic de celda `%%rspark` permite a los usuarios ejecutar código SparkR en todos los kernels de Spark.

```
%%rspark
a <- 1
```

La magic de celda `%%scalaspark` permite a los usuarios ejecutar código Spark Scala en todos los kernels de Spark.

```
%%scalaspark
val a = 1
```

## Compartir datos entre intérpretes de lenguajes con tablas temporales
<a name="emr-temp-tables"></a>

También puede compartir datos entre intérpretes de lenguajes mediante tablas temporales. En el siguiente ejemplo, se usa `%%pyspark` en una celda para crear una tabla temporal en Python y se usa `%%scalaspark` en la celda siguiente para leer los datos de esa tabla en Scala.

```
%%pyspark
df=spark.sql("SELECT * from nyc_top_trips_report LIMIT 20")
# create a temporary table called nyc_top_trips_report_view in python
df.createOrReplaceTempView("nyc_top_trips_report_view")
```

```
%%scalaspark
// read the temp table in scala
val df=spark.sql("SELECT * from nyc_top_trips_report_view")
df.show(5)
```