本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将多语言笔记本与 Spark 内核配合使用
每个 Jupyter notebook 内核都有默认语言。例如,Spark 内核的默认语言是 Scala,而内 PySpark 核的默认语言是 Python。在 Amazon EMR 6.4.0 及更高版本中,EMRStudio 支持多语言笔记本电脑。这意味着 EMR Studio 中的每个内核除了默认语言外,还可以支持以下语言:Python、Spark、R 和 Spark SQL。
要激活此功能,请指定以下选项之一 magic 任何单元格开头的命令。
Language | 命令 |
---|---|
Python |
|
Scala |
|
R |
不支持使用EMR无服务器的交互式工作负载。 |
火花 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)