使用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'); 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
文檔內容是否對您有幫助?