簡體   English   中英

從公共谷歌雲數據集中將嵌套數組加載到 bigquery

[英]Loading nested array into bigquery from public google cloud dataset

我正在嘗試將公共數據集從 Google Cloud 加載到 BigQuery ( quickdraw_dataset )。 數據為 JSON 格式如下:

 { 
    "key_id":"5891796615823360",
    "word":"nose",
    "countrycode":"AE",
    "timestamp":"2017-03-01 20:41:36.70725 UTC",
    "recognized":true,
    "drawing":[[[129,128,129,129,130,130,131,132,132,133,133,133,133,...]]]
  }

我遇到的問題是“繪圖”字段是一個嵌套數組。 我從閱讀其他帖子中得知您無法將 arrays 讀入 BigQuery? 這篇文章建議解決此問題的一種方法是將數組作為字符串讀取。 但是,當我使用以下模式時,會出現此錯誤:`

 [
    {
        "name": "key_id",
        "type": "STRING"
    },
    {
        "name": "word",
        "type": "STRING"
    },
    {
        "name": "countrycode",
        "type": "STRING"
    },
    {
        "name": "timestamp",
        "type": "STRING"
    },
    {
        "name": "recognized",
        "type": "BOOLEAN"
    },
    {
        "name": "drawing",
        "type": "STRING"

    }
]

讀取數據時出錯,錯誤消息:JSON 在從 position 0 開始的行中解析錯誤:為非重復字段指定的數組:繪圖。

有沒有辦法將此數據集讀入 BigQuery?

提前致謝!

將整行加載為 CSV,然后在 BigQuery 中進行解析。

加載:

bq load --F \\t temp.eraser gs://quickdraw_dataset/full/simplified/eraser.ndjson row

詢問:

SELECT JSON_EXTRACT_SCALAR(row, '$.countrycode') a
  , JSON_EXTRACT_SCALAR(row, '$.word') b
  , JSON_EXTRACT_ARRAY(row, '$.drawing')[OFFSET(0)] c
FROM temp.eraser

在此處輸入圖像描述

暫無
暫無

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

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