使用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
文档内容是否对您有帮助?