Usar cuadernos multilingües con kernels de Spark - Amazon EMR

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

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 versiones posteriores, EMR Studio admite blocs de notas multilingües. Esto significa que cada núcleo de EMR Studio puede admitir los siguientes lenguajes además del idioma predeterminado: Python, Spark, R y SparkSQL.

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

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 %%sql celda magic permite a los usuarios ejecutar el SQL código de Spark en todos los núcleos 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

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)