将多语言笔记本与 Spark 内核配合使用 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

将多语言笔记本与 Spark 内核配合使用

每个 Jupyter notebook 内核都有默认语言。例如,Spark 内核的默认语言是 Scala,而 PySpark 内核的默认语言是 Python。借助 Amazon EMR 6.4.0 及更高版本,EMR Studio 支持多语言笔记本电脑。这意味着除了默认语言 Python、Spark、R 和 Spark SQL 之外,EMR Studio 中的每个内核都可以支持以下语言。

要激活此功能,请在任何单元格的开头指定以下一种 magic 命令。

语言 命令
Python

%%pyspark

Scala

%%scalaspark

R

%%rspark

不支持将交互式工作负载与 EMR Serverless 结合使用。

Spark SQL

%%sql

调用后,这些命令会使用相应语言的解释器在同一 Spark 会话中执行整个单元格。

用户可以使用 %%pyspark 单元格 magic 在所有 Spark 内核中编写 PySpark 代码。

%%pyspark a = 1

用户可以使用 %%sql 单元格 magic 在所有 Spark 内核中执行 Spark-SQL 代码。

%%sql SHOW TABLES

用户可以使用 %%rspark 单元格 magic 在所有 Spark 内核中执行 SparkR 代码。

%%rspark a <- 1

用户可以使用 %%scalaspark 单元格 magic 在所有 Spark 内核中执行 Spark Scala 代码。

%%scalaspark val a = 1

使用临时表格在多个语言解释器之间共享数据

您还可以使用临时表格在语言解释器之间共享数据。以下示例通过单元格的 %%pyspark 用 Python 创建临时表格,并通过下列单元格的 %%scalaspark 从 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)