У меня есть данные, которые выглядят так -
{aa_validation: null
propensity_overlap: {auc pscore overlap: 0.5993614555297898
auc pscore treated: 1.000000000000001
auc pscore control: 1.0000000000000004
auc pscore ROC: 0.7524618788923345}
feature_balance: {% features with post matching SMD < 0.1: 100.0
% features with post matching SMD < 0.25: 100.0
% features with SMD improved after matching: 84.21052631578947
% features with SMD not significantly worsened: 100.0}}
Я хочу использовать Big Query, чтобы создать столбец для каждого из этих ключей, например, я получаю такой результат:
auc pscore overlap auc pscore overlap... % features with post matching SMD < 0.1 % features with post matching SMD < 0.25 ....
0.32 1 50.0 50.0
Я схожу с ума, используя Regex_extract, но, похоже, не могу заставить его работать. Может ли кто-нибудь помочь мне извлечь это с помощью Bigquery?
Эта схема JSON не подходит для BigQuery. Вам нужно изменить ключи, чтобы иметь возможность извлечь их правильно.
Этот ключ, например, «% функций с пост-сопоставлением SMD < 0,1», не будет работать с функцией JSON_EXTRACT, как вы можете видеть здесь:
неверный ключ в примере запроса
Используйте разные ключи, и тогда вы сможете запускать такие запросы:
SELECT JSON_EXTRACT(PARSE_JSON(json_field), "$.aa_validation") AS aa_validation,
JSON_EXTRACT(PARSE_JSON(json_field), "$.feature_balance") AS feature_balance,
JSON_EXTRACT(PARSE_JSON(json_field), "$.feature_balance.features_with_smd_improved_after_matching") AS smd_improved_after_matching,
FROM `qwiklabs-gcp-03-5570739e32d7.data.test2`
Использование преимуществ PARSE_JSON и JSON_EXTRACT в сочетании с запросами JsonPath.
json недействителен