gpt4 book ai didi

hadoop - Pig 中的嵌套展平

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

我在使用 Pig 时遇到问题,如下所示:假设我有一个别名 A,比如 ("key1","just_for_example")。我想要类似 :("key1","just"),("key1","for"),("key1","example") 的东西。我的脚本如下所示:

B = foreach A 生成 $0, FLATTEN(TOBAG(FLATTEN(STRSPLIT($1,'_'))));

但它一直向我抛出错误,例如“错误 1070:无法从内置解决 Flatten”。但是一旦我将这个语句分成两部分以消除嵌套的扁平化,它就会起作用。这是为什么?这与 Pig 如何编译我的脚本有关吗?谢谢。

最佳答案

Flatten不是一个UDF,它是一个改变包和元组格式的操作符。您可以阅读说明 here .

不过,您可以在干净的一行中获得所需的输出。 TOKENIZE 的工作方式与 STRSPLIT 类似,但生成的是包而不是元组。因此,你可以这样做:

B = FOREACH A GENERATE $0, FLATTEN(TOKENIZE($1, '_')) ;

结果模式和输出:

B: {key: chararray,bag_of_tokenTuples::token: chararray}
(key1,just)
(key1,for)
(key1,example)

关于hadoop - Pig 中的嵌套展平,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17606307/

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