Я экспортировал данные из магазина в BigQuery. Эти данные экспортируются в формате JSON. Я могу получить данные с лимитом 50, но когда я ставлю лимит в 100, появляется эта ошибка:
Failed to coerce output value false to type ARRAY<STRING>.
Я не знаю точно, что означает эта ошибка, но у меня естьпогуглил проблему только ни одно из этих объяснений не подходит для моей проблемы. Было две проблемы, только одну я уже понял. Вот почему код может выглядеть ненужным.
CREATE TEMPORARY FUNCTION
CUSTOM_JSON_EXTRACT(json STRING, json_path STRING)
RETURNS ARRAY<STRING>
LANGUAGE js AS """
return jsonPath(JSON.parse(json), json_path);
""" OPTIONS ( library="gs://suncamp-1106/jsonpath-0.8.0.js.txt" );
SELECT
A
, B
, C
, SPLIT(ARRAY_TO_STRING(D, ','), ',') as D
FROM (
SELECT
JSON_EXTRACT_SCALAR(data, '$.A') as A
, JSON_EXTRACT_SCALAR(data, '$.B') as B
, IF(REGEXP_CONTAINS(lower(data), r'subarray.*c'), CUSTOM_JSON_EXTRACT(JSON_EXTRACT(lower(data), "$.array['subarray']"), '$[*].c'), null) AS C
, IF(REGEXP_CONTAINS(lower(data), r'subarray.*d'), CUSTOM_JSON_EXTRACT(JSON_EXTRACT(lower(data), "$.array['subarray']"), '$[*].d'), null) AS D
FROM
`mydataset`)
Данные выглядят примерно так:
A - это имя
B - это дата рождения
C - это дата и время, которые зависят от следующей записи. собирает дату для поискового термина
D - это поисковый термин
Я ожидаю, что смогу получить результаты по моему запросу независимо от того, установил ли я ограничение или нет.