json - 如何使用 BigQuery 提取 JSON 对象中的所有键

标签 json google-bigquery

BigQuery 具有在实时交互式查询中解析 JSON 的功能:只需将 JSON 编码对象存储为字符串,并使用 JSON_EXTRACT_SCALAR 等函数实时查询。

但是,我找不到发现这些对象中所有键(属性)的方法。

我可以为此使用 UDF 吗?

最佳答案

这是使用 Standard SQL 的东西:

CREATE TEMP FUNCTION jsonObjectKeys(input STRING)
RETURNS Array<String>
LANGUAGE js AS """
  return Object.keys(JSON.parse(input));
""";
WITH keys AS (
  SELECT
    jsonObjectKeys(myColumn) AS keys
  FROM
    myProject.myTable
  WHERE myColumn IS NOT NULL
)
SELECT
  DISTINCT k
FROM keys
CROSS JOIN UNNEST(keys.keys) AS k
ORDER BY k

关于json - 如何使用 BigQuery 提取 JSON 对象中的所有键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34890339/

相关文章:

json - 使用 RestSharp 发布压缩的 JSON 内容

insert - Bigquery如何安排每周插入作业

google-bigquery - 使用服务帐户通过 API 从 BigQuery 中基于 Google 表格的表中查询数据

google-bigquery - 为什么耗时小于bigquery中消耗的槽时间

sql - 您如何计算 BigQuery 中列的 bool 聚合?

javascript - 复杂的 json ng-repeat

javascript - 有序的 JSONObject

java - 为 XMLRootElement 命名

asp.net-mvc - 将接口(interface)对象序列化为 JSON

linux - BigQuery 命令行 - 列出在指定时间范围内运行的所有作业