Латинская свинья присоединиться по полю

У меня есть проблема, связанная с латынью Pig:

У меня есть эти данные ниже (в одной строке):

A = LOAD 'records' AS (f1:chararray, f2:chararray,f3:chararray, f4:chararray,f5:chararray, f6:chararray);
DUMP A;

(FITKA,FINVA,FINVU,FEEVA,FETKA,FINVA)

Теперь у меня есть другой набор данных:

B = LOAD 'values' AS (f1:chararray, f2:chararray);
Dump B;
(FINVA,0.454535)
(FITKA,0.124411)
(FEEVA,0.123133)

И я хотел бы объединить эти два набора данных. Я бы получил соответствующее значение из набора данных B и поместил это значение рядом со значением из набора данных A. Итак, ожидаемый результат ниже:

FITKA 0.123133, FINVA 0.454535 and so on .. 
(They can also be like: FITKA, 0.123133, FINVA, 0.454535 and so on .. )

И тогда я смогу умножать значения (0.123133 x 0.454535 .. and so on), потому что теперь они находятся в одной строке, а это то, что я хочу.

Конечно, я могу соединять столбец за столбцом, но тогда значения отображаются как «конец строки», а затем я могу очистить его, используя другую генерацию foreach. Но мне нужно более простое решение без слишком большого количества соединений, которые могут вызвать проблемы с производительностью.

Набор данных A представляет собой текст (предложение одним способом..).

Итак, каковы мои варианты для достижения этого? Любая помощь будет приятно.


person Petri Koski    schedule 10.06.2015    source источник


Ответы (1)


Предложение может быть представлено в виде кортежа и содержит набор кортежей (слово, количество).

Поэтому я предлагаю вам изменить способ хранения ваших данных на следующий формат:

sentence:tuple(words:bag{wordcount:tuple(word, count)})
person glefait    schedule 10.06.2015
comment
Здравствуйте и спасибо за ваш быстрый ответ. Не могли бы вы дать мне пример короткого скрипта свиньи. Проблема по-прежнему заключается в том, что набор данных с отдельными словами и значениями, такими как (Питер 0,454523), является статическим, а набор данных с предложениями меняется довольно часто. Я понимаю вашу схему, но я сбился с пути, когда в моей ситуации приходится вставлять их в схему, которую вы описали.. - person Petri Koski; 10.06.2015
comment
Если вам нужно больше, чем подсказка, предоставьте больше информации и данных, которые можно проверить. - person glefait; 11.06.2015
comment
Хорошо, вот данные: - person Petri Koski; 13.06.2015
comment
предоставить входные наборы данных и ожидаемый результат. - person glefait; 15.06.2015
comment
Я поместил образцы строк из обоих наборов данных в исходный вопрос, а также предоставил желаемый результат. - person Petri Koski; 15.06.2015