搭配 Spark 核心使用多語言筆記本 - Amazon EMR

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

搭配 Spark 核心使用多語言筆記本

每個 Jupyter 筆記本核心都有一個預設語言。例如,Spark 核心的預設語言為 Scala,而 PySpark 核心的預設語言為 Python。Amazon EMR 6.4EMR.0 及更新版本支援多語言筆記本。這表示 EMR Studio 中的每個核心除了預設語言之外,還可以支援下列語言:Python、Spark、R 和 SparkSQL。

若要啟用此功能,請指定下列其中一項 magic 命令。

語言 Command
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)