在 BigQuery 中将一列列表转换为 ARRAY 类型

问题描述 投票:0回答:1

我正在寻求帮助解决我现在面临的以下问题:

我有一个具有以下格式的 csv:

col1, col2
1,    [1.2 4.2 6.3 3.1]
2,    [5.2 5.4 0.3 6.1]
3,    [3.2 0.1 5.3 6.7]
4,    ...

当我将其上传到 BigQuery 时,它会提供以下格式:

Row col1 col2
1   1    [1.2 4.2 6.3 3.1]
2   2    [5.2 5.4 0.3 6.1]
3   3    [3.2 0.1 5.3 6.7]

我想做的是将所有列表转换为数组。输出应如下所示:

Row col1 col2
1   1    1.2
         4.3
         6.3 
         3.1
2   2    5.2
         5.4
         0.3
         6.1
3   3    3.2
         0.1
         5.3
         6.7
and more

有没有办法对具有多个列表的列执行此操作?

感谢您的帮助。

google-bigquery bigquery-udf
1个回答
0
投票

使用以下方法

with test_data as (
  select 1 col1, '[1.2 4.2 6.3 3.1]' col2 union all
  select 2, '[5.2 5.4 0.3 6.1]' union all
  select 3, '[3.2 0.1 5.3 6.7]' 
)
select col1, col2
from test_data, 
unnest(split(trim(col2, '[]'), ' ')) col2

有输出

© www.soinside.com 2019 - 2024. All rights reserved.