针对 Spark 内核的多语言支持 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

针对 Spark 内核的多语言支持

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

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

语言 命令
Python %%pyspark
Scala %%scalaspark
R %%rspark
Spark SQL %%sql

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

%%pyspark 单元格魔术 (cell magic) 允许用户在所有 Spark 内核中编写 PySpark 代码。

%%pyspark a = 1

%%sql 单元格魔术 (cell magic) 允许用户在所有 Spark 内核中执行 Spark SQL 代码。

%%sql SHOW TABLES

%%rspark 单元格魔术 (cell magic) 允许用户在所有 Spark 内核中执行 SparkR 代码。

%%rspark a <- 1

%%scalaspark 单元格魔术 (cell 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)