全部產品
Search
文件中心

E-MapReduce:Spark SIMD JSON使用說明

更新時間:Jul 01, 2024

使用Spark SIMD(全稱Single Instruction Multiple Data,單指令多資料流)JSON,可以比Spark原生JSON解析更快。本文為您介紹如何開啟Spark SIMD JSON,以及使用樣本。

開啟Spark SIMD JSON

您可以在E-MapReduce開啟Spark SIMD JSON。

針對SparkThriftServer

  1. 進入叢集服務頁面。

    1. 在頂部功能表列處,根據實際情況選擇地區和資源群組

    2. EMR on ECS頁面,單擊目的地組群操作列的叢集服務

  2. 新增配置項。

    1. 叢集服務頁面,單擊Spark3服務地區的配置

      本文以Spark3服務為例。

    2. 單擊spark-thriftserver.conf頁簽。

    3. 單擊新增配置項

    4. 輸入Keyspark.sql.simd.json.enabledValuetrue的配置項。

    5. 單擊確定

    6. 在彈出的對話中,輸入執行原因,單擊儲存

  3. 重啟SparkThriftServer。

    1. 叢集服務頁面,單擊狀態頁簽。

    2. 組件列表地區,單擊SparkThriftServer操作列的重啟

    3. 在彈出的對話中,輸入執行原因,單擊確定

    4. 確認對話中,單擊確定

針對Spark任務

在啟動Spark任務時,加上以下參數。

spark.sql.simd.json.enabled=true

支援函數

支援以下函數,使用方法與原生Spark一致。

  • 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