

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Gunakan notebook multi-bahasa dengan kernel Spark
<a name="emr-multi-language-kernels"></a>

Setiap kernel notebook Jupyter memiliki bahasa default. Misalnya, bahasa default kernel Spark adalah Scala, dan bahasa default PySpark kernel adalah Python. Dengan Amazon EMR 6.4.0 dan yang lebih baru, EMR Studio mendukung notebook multi-bahasa. Ini berarti bahwa setiap kernel di EMR Studio dapat mendukung bahasa berikut selain bahasa default: Python, Spark, R, dan Spark SQL.

Untuk mengaktifkan fitur ini, tentukan salah satu magic perintah berikut di awal sel apa pun.


****  

| Bahasa | Perintah | 
| --- | --- | 
| Python | `%%pyspark` | 
| Skala | `%%scalaspark` | 
| R | `%%rspark` Tidak didukung untuk beban kerja interaktif dengan EMR Tanpa Server. | 
| Spark SQL | `%%sql` | 

Saat dipanggil, perintah ini menjalankan seluruh sel dalam sesi Spark yang sama menggunakan penerjemah bahasa yang sesuai.

`%%pyspark`Sel magic memungkinkan pengguna untuk menulis PySpark kode di semua kernel Spark.

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

`%%sql`Sel magic memungkinkan pengguna untuk mengeksekusi kode Spark-SQL di semua kernel Spark.

```
%%sql
SHOW TABLES
```

`%%rspark`Sel magic memungkinkan pengguna untuk mengeksekusi kode SparkR di semua kernel Spark.

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

`%%scalaspark`Sel magic memungkinkan pengguna untuk mengeksekusi kode Spark Scala di semua kernel Spark.

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

## Bagikan data di seluruh penerjemah bahasa dengan tabel sementara
<a name="emr-temp-tables"></a>

Anda juga dapat berbagi data antar penerjemah bahasa menggunakan tabel sementara. Contoh berikut menggunakan `%%pyspark` dalam satu sel untuk membuat tabel sementara di Python dan menggunakan `%%scalaspark` dalam sel berikut untuk membaca data dari tabel itu di 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)
```