BigQuery 将 JSON 文本展平为结构记录数组

sqlserverJS

1个回答

写回答

静静¥

2025-06-25 16:55

+ 关注

JS
JS

使用BigQuery的JSON函数可以将JSON文本展平为结构或记录数组。这个功能非常有用,它允许我们在BigQuery中轻松处理和分析复杂的JSON数据。

JSON数据的展平

在BigQuery中,可以使用JSON_EXTRACT函数来提取JSON对象的特定字段。如果JSON对象包含嵌套的子对象或数组,我们可以使用JSON_EXTRACT_ARRAY函数来展平这些嵌套的结构。

例如,假设我们有一个包含以下JSON数据的表:

[

{

"id": 1,

"name": "John",

"age": 25,

"hobbies": ["reading", "coding", "hiking"]

},

{

"id": 2,

"name": "Jane",

"age": 30,

"hobbies": ["pAInting", "photography"]

}

]

我们可以使用以下查询将JSON数据展平为结构数组:

sql

SELECT

JSON_EXTRACT_SCALAR(JSon_data, '$.id') AS id,

JSON_EXTRACT_SCALAR(JSon_data, '$.name') AS name,

JSON_EXTRACT_SCALAR(JSon_data, '$.age') AS age,

JSON_EXTRACT_ARRAY(JSon_data, '$.hobbies') AS hobbies

FROM

<code>project.dataset.table</code>

这将返回以下结果:

| id | name | age | hobbies |

|----|------|-----|----------------------------|

| 1 | John | 25 | ["reading", "coding", "hiking"] |

| 2 | Jane | 30 | ["pAInting", "photography"] |

案例代码

以下是一个使用BigQuery的Python客户端库执行上述查询的示例代码:

Python

from Google.cloud import bigquery

# 初始化BigQuery客户端

client = bigquery.Client()

# 构建查询

query = """

SELECT

JSON_EXTRACT_SCALAR(JSon_data, '$.id') AS id,

JSON_EXTRACT_SCALAR(JSon_data, '$.name') AS name,

JSON_EXTRACT_SCALAR(JSon_data, '$.age') AS age,

JSON_EXTRACT_ARRAY(JSon_data, '$.hobbies') AS hobbies

FROM

<code>project.dataset.table</code>

"""

# 执行查询

query_job = client.query(query)

# 获取查询结果

results = query_job.result()

# 打印结果

for row in results:

print(f"id: {row.id}, name: {row.name}, age: {row.age}, hobbies: {row.hobbies}")

这将输出以下结果:

id: 1, name: John, age: 25, hobbies: ["reading", "coding", "hiking"]

id: 2, name: Jane, age: 30, hobbies: ["pAInting", "photography"]

使用BigQuery展平JSON数据的好处

展平JSON数据可以使我们能够更轻松地对其进行分析和处理。通过将JSON数据展平为结构数组,我们可以更方便地使用SQL查询来提取所需的字段和值,而不需要手动解析复杂的JSON结构。

此外,展平JSON数据还可以帮助我们更好地了解数据的结构和关系。通过查看展平后的数据,我们可以更清楚地看到JSON对象之间的关联和层次结构,从而更好地理解数据的含义和内容。

使用BigQuery的JSON函数,我们可以轻松地将JSON文本展平为结构或记录数组。这种功能对于处理和分析复杂的JSON数据非常有用。通过展平JSON数据,我们可以更方便地提取所需的字段和值,并更好地理解数据的结构和关系。

无论是处理大型数据集还是分析复杂的JSON数据,BigQuery的展平功能都可以帮助我们更高效地进行数据处理和分析。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号