У меня есть таблица в Bigquery, которая имеет 2 столбца - job_id
и json_column
(строка в формате JSON). Когда я пытался прочитать данные и идентифицировать некоторые объекты, это выдает мне ошибку, как показано ниже:
SyntaxError:Unexpected end of JSON input at undefined line XXXX, columns xx-xx
Это всегда дает мне строку 5931, и во второй раз, когда я выполняюсь снова, это дает строку 6215.
Если это связано с проблемой структуры JSON, как я могу узнать, какой строке / job_id
соответствует это число 5931? Если я задаю подмножество для указанного c job_id
, он возвращает значения, но когда я попытался выполнить полную таблицу, я получил эту ошибку. Я попытался взглянуть на job_id
по упомянутым номерам row_numbers, и код прекрасно работает для этих job_id
s.
Как вы думаете, проблема структуры JSON и как определить, какая строка / job_id
имеет эту проблему?
Структура таблицы:
Код:
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://json_temp/jsonpath-0.8.0.js"
);
SELECT job_id,dist,gm,sub_gm
FROM lz_fdp_op.fdp_json_file,
UNNEST(CUSTOM_JSON_EXTRACT(trim(conv_column), '$.Project.OpsLocationInfo.iDistrictId')) dist ,
UNNEST(CUSTOM_JSON_EXTRACT(trim(conv_column), '$.Project.GeoMarketInfo.Geo')) gm,
UNNEST(CUSTOM_JSON_EXTRACT(trim(conv_column), '$.Project.GeoMarketInfo.SubGeo')) sub_gm