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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

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

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

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

Language 命令
Python

%%pyspark

Scala

%%scalaspark

R

%%rspark

不支持使用EMR无服务器的交互式工作负载。

火花 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)