Spark Single Instruction, Multiple Data(SIMD)JSON は、Spark のネイティブ JSON パーサーよりも効率的にデータを解析します。このトピックでは、Spark SIMD JSON を有効化して使用する方法について説明します。
Spark SIMD JSON の有効化
E-MapReduce(EMR)コンソールで Spark SIMD JSON を有効にできます。
Spark Thrift Server での Spark SIMD JSON の有効化
サービス タブに移動します。
EMR コンソールにログインします。左側のナビゲーションペインで、EMR on ECS をクリックします。
上部のナビゲーションバーで、クラスターが存在するリージョンを選択し、ビジネス要件に基づいてリソースグループを選択します。
[EMR On ECS] ページで、管理するクラスターを見つけ、[アクション] 列の [サービス] をクリックします。
構成項目を追加します。
[サービス] タブで、Spark3 セクションの [構成] をクリックします。
この例では、Spark3 を使用しています。
[spark-thriftserver.conf] タブをクリックします。
[構成項目の追加] をクリックします。
[キー] が spark.sql.simd.json.enabled で、[値] が true である構成項目を、[構成項目の追加] ダイアログボックスに追加します。
[OK] をクリックします。
表示されるダイアログボックスで、[実行理由] フィールドに実行理由を入力し、[保存] をクリックします。
Spark Thrift Server を再起動します。
[サービス] タブで、[ステータス] タブをクリックします。
[コンポーネント] セクションで、[sparkthriftserver] を見つけ、[アクション] 列の をクリックします。
表示されるダイアログボックスで、[実行理由] フィールドに実行理由を入力し、[OK] をクリックします。
[確認] メッセージで、[OK] をクリックします。
Spark ジョブで Spark SIMD JSON を有効にする
Spark ジョブを開始するために使用するコマンドに、次のパラメーターを追加します。
spark.sql.simd.json.enabled=true
サポートされている関数
Spark SIMD JSON は、次の関数をサポートしています。これらの関数は、Spark のネイティブ JSON パーサーの関数と同じ方法で使用できます。
get_json_object(expr, path)
サンプルコード:
SELECT get_json_object('{"a":"b"}', '$.a'); b
json_tuple(jsonStr, path1 [, ...] )
サンプルコード:
SELECT json_tuple('{"a":1, "b":2}', 'a', 'b'), 'Spark'; 1 2 Spark SELECT json_tuple('{"a":1, "b":2}', 'a', 'c'), 'Hive'; 1 NULL Hive