要将BigQuery中的JSON字符串转换为列和行,可以使用BigQuery的内置函数和SQL查询语法。下面是一个解决方案的示例代码:
-- 创建一个包含JSON数据的示例表
CREATE TABLE json_table (
id INT64,
json_data STRING
);
-- 插入示例数据
INSERT INTO json_table (id, json_data)
VALUES (1, '{"name": "John", "age": 30, "city": "New York"}'),
(2, '{"name": "Jane", "age": 25, "city": "San Francisco"}'),
(3, '{"name": "Bob", "age": 40, "city": "Chicago"}');
-- 使用JSON_EXTRACT函数将JSON字符串转换为列
SELECT
id,
JSON_EXTRACT_SCALAR(json_data, '$.name') AS name,
JSON_EXTRACT_SCALAR(json_data, '$.age') AS age,
JSON_EXTRACT_SCALAR(json_data, '$.city') AS city
FROM
json_table;
-- 输出结果:
-- id | name | age | city
-- ----------------------
-- 1 | John | 30 | New York
-- 2 | Jane | 25 | San Francisco
-- 3 | Bob | 40 | Chicago
在上面的示例中,我们首先创建了一个名为json_table
的表,并插入了一些包含JSON数据的示例数据。然后,使用JSON_EXTRACT_SCALAR
函数将JSON字符串中的指定字段提取为单独的列。最后,通过从json_table
表中选择这些列,我们可以将JSON字符串转换为列和行形式的数据。
注意,JSON_EXTRACT_SCALAR
函数用于提取JSON字符串中的标量值。如果要提取JSON数组或嵌套对象,请使用JSON_EXTRACT
函数。