簡體   English   中英

從 Big-query 中的 Complex JSON 中提取數據

[英]Extract data from Complex JSON in Big-query

我有一個看起來像這樣的數據 -

{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。 您需要更改密鑰才能正確提取它們。

這個鍵,fe,“% features with post matching SMD < 0.1”不適用於 JSON_EXTRACT function,正如您在這里看到的:

示例查詢中的無效鍵

使用不同的鍵,然后您將能夠啟動這樣的查詢:

    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 查詢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM