查询 JSON 数据

最近更新时间:2024-08-23 15:17:31

我的收藏

查询步骤

1. 创建数据表,指定 JSON 解析格式。
CREATE EXTERNAL TABLE `order_demo`(
`docid` string COMMENT 'from deserializer',
`user` struct < id :int,
username :string,
name :string,
shippingaddress :struct < address1 :string,
address2 :string,
city :string,
state :string > > COMMENT 'from deserializer',
`children` array < string >
) ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe' LOCATION 'cosn://dlc-bucket/order'
2. 执行查询语句查询 JSON 数据。DLC 支持 JSON 解析函数json_parse()json_extract_scalar()json_extract()等。详情请参见 SQL 语法
SELECT `user`.`shippingaddress`.`address1` FROM `order_demo` limit 10;

系统约束

必须是完整的 JSON 格式,否则 DLC 无法正常解析。
同一行数据不能有换行符,不能对 JSON 进行可视化格式优化。例如:
{"name":"Michael"}
{"name":"Andy", "age":30}
{"name":"Justin", "age":19}
DLC 会自动将 JSON 的第一层级识别为数据表的属性列,其余嵌套结构识别为对应的属性值。