这是一个包含两部分的问题:
首先,我有一个 python UDF,它创建一个未知长度的字符串列表。UDF 的输入是map
(dict
在 python 中),键的数量基本上是未知的(这是我想要获得的)。
我不知道如何在一个模式中输出它,让我将它作为一个列表(或其他一些可迭代的数据结构)返回。这是我到目前为止所拥有的:
@outputSchema("?????") #WHAT SHOULD THE SCHEMA BE!?!?
def test_func(input):
output = []
for k, v in input.items():
output.append(str(key))
return output
现在,问题的第二部分。在 Pig 中,我想为我的所有用户对“列表”中的每个元素应用SHA哈希。一些 Pig 伪代码:
USERS = LOAD 'something' as (my_map:map[chararray])
UDF_OUT = FOREACH USERS GENERATE my_udfs.test_func(segment_map)
SHA_OUT = FOREACH UDF_OUT GENERATE SHA(UDF_OUT)
最后一行可能是错误的,因为我想将 SHA 应用于列表中的每个元素,而不是整个列表。