gpt4 book ai didi

python - 元组中的元素到 Bag Pig 中的元组

转载 作者:可可西里 更新时间:2023-11-01 16:13:49 26 4
gpt4 key购买 nike

我在下面有以下数据。

DUMP a;
(2013-12-25 03:00:55,1899454055,(0958847,090119960,095V987,09518X))
(2013-12-25 03:02:47,1899454055,(09588,090119,0959872P,095189))
(2013-12-25 03:04:00,1899454055,(09588,0901199,09598720P,0951890))
(2013-12-25 03:04:37,1899454055,(0958,0901199,095000P,095189100))
(2013-12-25 03:07:12,3929866522,(0096703))

基本上我想要做的是分解元组 $2 中的每个元素,以便每个时间戳的元组中的每个元素都有一行。所以第 1 行看起来像这样。

(2013-12-25 03:00:55,1899454055,0958847)
(2013-12-25 03:00:55,1899454055,090119960)
(2013-12-25 03:00:55,1899454055,095V987)
(2013-12-25 03:00:55,1899454055,09518X)

现在我知道执行此操作的方法是将元组转换为包并展开。因此,我编写了这个 Python UDF。

@outputSchema("products:{t:(product:chararray)}")
def toBag(t):
y = [(i,) for i in t]
return y

当我尝试使用此 python UDF 时,出现无法打开别名的错误。然而,当我使用整数时,UDF 的一个稍微修改的版本可以工作。 (虽然,我不能在这里使用元组 $2 中字母字符的 b/c)

  @outputSchema("ids:bag{t:(id:int)}")
def splitT(ids):
x = [(t,) for t in ids]
return x

所以,我不确定为什么 UDF 使用 int 而不是 chararray。另外,我觉得可能有一种方法可以在不使用 UDF 的情况下执行此操作……但我不确定从哪里开始。对这里可能发生的事情有什么建议吗?

最佳答案

我想这个很容易......就将元组列表更改为包而言。

 a2 = foreach  generate a time, id_no, TOKENIZE($2);

但是,我仍然不熟悉 Python UDF。如果有人能想到这一点。我洗耳恭听。

关于python - 元组中的元素到 Bag Pig 中的元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26244813/

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