【发布时间】:2020-03-25 21:23:17
【问题描述】:
我看到数据重复或丢失了序列广告,为我拥有的 JSON 结构创建了无效数据。
示例输入数据:有两列 job_id 和 "conv_column",具有以下 JSON 结构。
[ { “来源”: ””, “数字”:“WP1”, “名称”:“井#1”, "树液编号": "", “状态”: ””, “国家”: ””, “场地”: ””, “乌维”:“”, “环境”: ””, “井号”:“WP1”, "纬度": "", "经度": "", “类型”: ””, "水深": "", "井几何": "", "钻取": "", “县”:“”, “城市”: ””, "WellPlaceholderId": "dd726299-26c3-447d-8367-ef1ec79d1c28", “IsNonMasteredWell”:是的 }, { “来源”: ””, “数字”:“WP2”, “名称”:“井#2”, "树液编号": "", “状态”: ””, “国家”: ””, “场地”: ””, “乌维”:“”, “环境”: ””, “井号”:“WP2”, "纬度": "", "经度": "", “类型”: ””, "水深": "", "井几何": "", "钻取": "", “县”:“”, “城市”: ””, "WellPlaceholderId": "129808ad-6f07-46f3-ab70-4140e4cc92ff", “IsNonMasteredWell”:是的 }, { “来源”: ””, “数字”:“1-6HQPMA”, “名称”:“BLANCA-004”, "树液编号": "", “状态”: ””, “国家”:“厄瓜多尔”, “领域”:“布兰卡”, “Uwi”:“BLC-004”, “环境”:“土地”, “井号”:“0064004151”, “纬度”:“0.311318889”, “经度”:“-76.17652111”, “类型”:“发展”, "水深": "", "WellGeometry": "垂直 (0 -
我正在使用的代码:
CREATE TEMPORARY FUNCTION CUSTOM_JSON_EXTRACT(json STRING, json_path STRING)
RETURNS ARRAY<STRING>
LANGUAGE js AS """
var result = jsonPath(JSON.parse(json), json_path);
if(result){return result;}
else {return [];}
"""
OPTIONS (
library="gs://dev-workspace/json_temp/jsonpath-0.8.0.js"
);
SELECT distinct job_id,well_id,
well_name,well_number,well_sap_number,well_field,well_uwi
from lz_fdp_op.dbm_temp_data
left join UNNEST(CUSTOM_JSON_EXTRACT(conv_column,"$.Operation.Wells[*].WellId")) Well_ID
left join UNNEST(CUSTOM_JSON_EXTRACT(conv_column,"$.Operation.Wells[*].Name")) well_name
left join UNNEST(CUSTOM_JSON_EXTRACT(conv_column,"$.Operation.Wells[*].Number")) well_number
left join UNNEST(CUSTOM_JSON_EXTRACT(conv_column,"$.Operation.Wells[*].SapNumber")) well_sap_number
left join UNNEST(CUSTOM_JSON_EXTRACT(conv_column,"$.Operation.Wells[*].Field")) well_field
left join UNNEST(CUSTOM_JSON_EXTRACT(conv_column,"$.Operation.Wells[*].Uwi")) well_uwi
【问题讨论】:
标签: json google-bigquery unnest