

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á.

# Use cadernos em várias linguagens com kernels do Spark
<a name="emr-multi-language-kernels"></a>

Cada kernel de caderno Jupyter tem uma linguagem padrão. Por exemplo, o idioma padrão do kernel do Spark é o Scala e o idioma padrão do PySpark kernel é o Python. Com a versão 6.4.0 e versões posteriores do Amazon EMR, o EMR Studio oferece suporte a cadernos em várias linguagens. Isso significa que cada kernel no EMR Studio pode oferecer suporte às seguintes linguagens, além da linguagem padrão: Python, Spark, R e Spark SQL.

Para ativar este atributo, especifique um dos comandos magic apresentados a seguir no início de qualquer célula.


****  

| Linguagem | Command | 
| --- | --- | 
| Python | `%%pyspark` | 
| Scala | `%%scalaspark` | 
| R | `%%rspark` Não há suporte para workloads interativas com o EMR Serverless. | 
| Spark SQL | `%%sql` | 

Quando invocados, esses comandos executam a célula inteira na mesma sessão do Spark usando o interpretador da linguagem correspondente.

A `%%pyspark` célula magic permite que os usuários escrevam PySpark código em todos os kernels do Spark.

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

A célula magic do `%%sql` permite que os usuários executem código Spark SQL em todos os kernels do Spark.

```
%%sql
SHOW TABLES
```

A célula magic do `%%rspark` permite que os usuários executem código SparkR em todos os kernels do Spark.

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

A célula magic do `%%scalaspark` permite que os usuários executem código Spark Scala em todos os kernels do Spark.

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

## Compartilhamento de dados entre interpretadores de linguagens com tabelas temporárias
<a name="emr-temp-tables"></a>

Você também pode compartilhar dados entre interpretadores de linguagem usando tabelas temporárias. O exemplo a seguir usa `%%pyspark` em uma célula para criar uma tabela temporária em Python e usa `%%scalaspark` na célula a seguir para realizar a leitura de dados dessa tabela em 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)
```