Это вопрос, который состоит из двух частей:
Во-первых, у меня есть пользовательская функция Python, которая создает список строк неизвестной длины. Вход в 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 к каждому элементу. в "списке" для всех моих пользователей. Какой-то псевдокод свиньи:
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 к каждому элементу в списке, а НЕ ко всему списку.