gpt4 book ai didi

google-cloud-dataprep - 在 Google Data Prep 中将多行合并为一行

转载 作者:行者123 更新时间:2023-12-04 10:13:05 34 4
gpt4 key购买 nike

我有一个表,它在不同的行中有多个有效载荷值。我想将这些行合并为一行以将所有数据放在一起。表看起来像这样。

+------------+--------------+------+----+----+----+----+
| Date | Time | User | D1 | D2 | D3 | D4 |
+------------+--------------+------+----+----+----+----+
| 2020-04-15 | 05:39:45 UTC | A | 2 | | | |
| 2020-04-15 | 05:39:45 UTC | A | | 5 | | |
| 2020-04-15 | 05:39:45 UTC | A | | | 8 | |
| 2020-04-15 | 05:39:45 UTC | A | | | | 7 |
+------------+--------------+------+----+----+----+----+

我想把它转换成这样的东西。
+------------+--------------+------+----+----+----+----+
| Date | Time | User | D1 | D2 | D3 | D4 |
+------------+--------------+------+----+----+----+----+
| 2020-04-15 | 05:39:45 UTC | A | 2 | 5 | 8 | 7 |
+------------+--------------+------+----+----+----+----+

我尝试了“设置”和“聚合”,但它们并没有像我希望的那样工作,我不知道如何继续。

任何帮助,将不胜感激。
谢谢。

最佳答案

tl;博士:

使用 fill() 函数填充所需组中每个 d1-d4 列中的所有空值(AKA - 列日期 + 时间 + 用户),然后 dedup\aggregate 到你的心的内容。

长版

因此,最快的方法是使用称为“fill()”的窗口函数。
此函数对列中的每个给定字段执行的操作,它告诉它:
“往下看。往上看。找到最近的非空值,复制!”
你当然可以 限制它的视线(例如,只看上面的 3 行)但对于这个例子,不需要限制。所以你的填充函数看起来像这样:
填充($col,-1,-1)
所以“$col”将引用所有选择的列。 “-1”表示“无限视野”。
最后,“~”表示“从 D1 列到 D4 列”。

因此,函数将如下所示:

fill_creation
.

这反过来会使您的列看起来像这样:
output columns
.

现在,您可以使用“重复数据删除”转换来删除任何重复项,并且每个“组”只会保留 1 个副本。
或者,如果您仍想使用“分组依据”,您也可以这样做。

希望这有帮助 =]

附言
有更多方法可以做到这一点 - 这需要使用“枢轴”转换和数组取消嵌套。但在此过程中,您将丢失列的名称,并且需要重命名它们。

关于google-cloud-dataprep - 在 Google Data Prep 中将多行合并为一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61230896/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com