本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
每個 Jupyter 筆記本核心都有一個預設語言。例如,Spark 核心的預設語言是 Scala,而 PySpark 核心的預設語言是 Python。透過 Amazon EMR 6.4.0 及更新版本,EMR Studio 支援多語言筆記本。這意味著 EMR Studio 中的每個核心可以支援除預設語言之外的以下語言:Python、Spark、R 和 Spark SQL。
若要啟動此功能,請在任何儲存格的開頭指定下列 magic 命令之一。
語言 | Command |
---|---|
Python |
|
Scala |
|
R |
EMR Serverless 不支援互動式工作負載。 |
Spark 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)