使用Spark SIMD(全稱Single Instruction Multiple Data,單指令多資料流)JSON,可以比Spark原生JSON解析更快。本文為您介紹如何開啟Spark SIMD JSON,以及使用樣本。
開啟Spark SIMD JSON
您可以在E-MapReduce開啟Spark SIMD JSON。
針對SparkThriftServer
進入叢集服務頁面。
在頂部功能表列處,根據實際情況選擇地區和資源群組。
在EMR on ECS頁面,單擊目的地組群操作列的叢集服務。
新增配置項。
在叢集服務頁面,單擊Spark3服務地區的配置。
本文以Spark3服務為例。
單擊spark-thriftserver.conf頁簽。
單擊新增配置項。
輸入Key為spark.sql.simd.json.enabled,Value為true的配置項。
單擊確定。
在彈出的對話中,輸入執行原因,單擊儲存。
重啟SparkThriftServer。
在叢集服務頁面,單擊狀態頁簽。
在組件列表地區,單擊SparkThriftServer操作列的。
在彈出的對話中,輸入執行原因,單擊確定。
在確認對話中,單擊確定。
針對Spark任務
在啟動Spark任務時,加上以下參數。
spark.sql.simd.json.enabled=true支援函數
支援以下函數,使用方法與原生Spark一致。
get_json_object(expr, path)
樣本如下。
SELECT get_json_object('{"a":"b"}', '$.a'); bjson_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