如何解决将重复的列从CSV转换为嵌套的BigQuery表?
我有一个看起来像这样的表:
a b c b c
0 0 1 2 3 4
1 5 6 7 8 9
我想将其转换为嵌套表:
a b c
0 0 1 2
1 3 4
2 5 6 7
3 8 9
我设法将其转换为这种格式
a b c
0 0 1 2
1 0 3 4
2 5 6 7
3 5 8 9
但是有更好的方法将其从原始csv转换为所需格式吗?
我愿意使用BigQuery SQL或Python解决方案。
解决方法
以下是用于BigQuery标准SQL
#standardSQL
WITH `I have managed to transform it to this format` AS (
-- replace below with whatever query you used to get to this format
SELECT 0 a,1 b,2 c UNION ALL
SELECT 0,3,4 UNION ALL
SELECT 5,6,7 UNION ALL
SELECT 5,8,9
)
SELECT a,ARRAY_AGG(b) b,ARRAY_AGG(c) c
FROM `I have managed to transform it to this format`
GROUP BY a
有输出
Row a b c
1 0 1 2
3 4
2 5 6 7
8 9
根据您最近的评论The column names in BQ [actually] are a b1 c1 b2 c2
更新
在这种情况下,它很简单
#standardSQL
SELECT a,[b1,b2] b,[c1,c2] c
FROM `project.dataset.table`
您可以使用问题中的示例数据来测试,玩转上面的示例
#standardSQL
WITH `project.dataset.table` AS (
SELECT 0 a,1 b1,2 c1,3 b2,4 c2 UNION ALL
SELECT 5,7,9
)
SELECT a,c2] c
FROM `project.dataset.table`
有输出
Row a b c
1 0 1 2
3 4
2 5 6 7
8 9
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。