Apache Hudi は、Hadoop 互換ファイルシステムのデータの更新と削除を可能にするデータレイクフレームワークです。Hudi では、変更されたデータを使用することもできます。詳細については、「Apache Hudi」をご参照ください。このトピックでは、EMR Serverless Spark で Hudi テーブルのデータを読み書きする方法について説明します。
前提条件
ワークスペースが作成されていること。詳細については、「ワークスペースを作成する」をご参照ください。
手順
ステップ 1: SQL セッションを作成する
セッションページに移動します。
EMR コンソール にログオンします。
左側のナビゲーションウィンドウで、 を選択します。
[Spark] ページで、管理するワークスペースの名前をクリックします。
[EMR Serverless Spark] ページの左側のナビゲーションウィンドウで、[オペレーションセンター] > [セッション] を選択します。
[SQL セッション] タブで、[SQL セッションの作成] をクリックします。
[SQL セッションの作成] ページの [Spark 設定] セクションで、次のコードを追加し、[作成] をクリックします。詳細については、「SQL セッションを管理する」をご参照ください。
次のコードでは、ワークスペースのデフォルトカタログが使用されます。外部 Hive Metastore をカタログとして使用する方法については、「外部 Hive Metastore に接続する」をご参照ください。
spark.sql.extensions org.apache.spark.sql.hudi.HoodieSparkSessionExtension spark.sql.catalog.spark_catalog org.apache.spark.sql.hudi.catalog.HoodieCatalog spark.serializer org.apache.spark.serializer.KryoSerializer
ステップ 2: Hudi テーブルのデータを読み書きする
EMR Serverless Spark のデータ開発ページに移動します。
[EMR Serverless Spark] ページの左側のナビゲーションウィンドウで、[データ開発] をクリックします。
[開発] タブで、
アイコンをクリックします。[作成] ダイアログボックスで、名前パラメーターを users_task に設定し、タイプパラメーターにデフォルト値 SparkSQL を使用して、[OK] をクリックします。
users_task タブで、次のコードをコードエディタにコピーします。
CREATE DATABASE IF NOT EXISTS ss_hudi_db; CREATE TABLE ss_hudi_db.hudi_tbl (id INT, name STRING) USING hudi TBLPROPERTIES ( type = 'cow', primaryKey = 'id' ); INSERT INTO ss_hudi_db.hudi_tbl VALUES (1, "a"), (2, "b"); SELECT id, name FROM ss_hudi_db.hudi_tbl ORDER BY id; DROP TABLE ss_hudi_db.hudi_tbl; DROP DATABASE ss_hudi_db;[デフォルトデータベース] ドロップダウンリストからデータベースを選択し、[SQL セッション] ドロップダウンリストから作成した SQL セッションを選択します。
[実行] をクリックします。次の図は出力を示しています。

関連情報
SQL ジョブを開発およびオーケストレーションする方法については、「Spark SQL ジョブ開発の開始」をご参照ください。
Hudi の詳細については、「Apache Hudi」をご参照ください。