要在BigQuery中将JSON扩展为记录,可以使用BigQuery的用户定义函数(UDF)。以下是一个示例解决方案,包含使用JavaScript编写的UDF代码示例。
首先,创建一个名为json_to_record
的UDF,该函数将接受一个JSON字符串作为输入,并将其转换为记录。
CREATE TEMPORARY FUNCTION json_to_record(json_string STRING)
RETURNS STRUCT
LANGUAGE js AS """
var obj = JSON.parse(json_string);
var result = [];
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
result.push({key: key, value: obj[key]});
}
}
return result;
""";
接下来,使用UDF将JSON字符串扩展为记录。假设有一个名为json_data
的表,其中包含一个名为json_column
的JSON列。
SELECT json_to_record(json_column) AS record
FROM json_data;
这将返回一个新列record
,其中包含从JSON列中提取的键值对记录。您可以根据需要在查询中使用这些记录。
请注意,此示例仅将JSON扩展为具有键值对的记录。如果JSON具有嵌套结构或数组,您可能需要对UDF进行适当的修改。
上一篇:BigQuery的银行家舍入
下一篇:BigQuery的原子性