我是猪的新手,我写了以下猪脚:
DEFINE format `format_text.py $EMOJI $ACRONYM` SHIP ('$STREAM_FILE_PATH/format_text.py');
DEFINE parse `parse.sh` SHIP ('$STREAM_FILE_PATH_SYNTAXNET/parse.sh');
DEFINE process_roots `process_roots.py` SHIP ('$STREAM_FILE_PATH_SYNTAXNET/process_roots.py');
input_data = LOAD '$DATA_INPUT';
result1 = STREAM input_data THROUGH format;
result2 = STREAM result1 THROUGH parse;
result3 = STREAM result2 THROUGH process_roots;
result4 = foreach result1 Generate CONCAT (result1, result3);
STORE result1 into '$DATA_OUTPUT';
STORE result2 into '$SYNTAXNET_OUTPUT';
STORE result4 into '$SYNTAXNET_RESULTS';
所以,我的input_data
是推文的json文件。
format
格式化json的“text”字段以清理推文。parse
通过syntaxnet运行已清理的json以生成依赖关系。输出result2
类似于: 2 Bank _ NOUN NNP _ 3 nn _ _
对于推文的每个单词(其中第二列是单词)。
process_roots
在result2
上执行了一些处理并生成result3
,这是一个类似的json字段: avl_tags_syntaxnet: [{'pos_tag': 'NNP', 'position': '1', 'dep_rel': 'nn', 'parent': '3', 'word': 'US'}, ....................... {'pos_tag': '.', 'position': '30', 'dep_rel': 'punct', 'parent': '23', 'word': '...'}]
现在,我想要做的就是将新创建的Json字段(result3
)附加到result1
并将其存储在某处。我在pig中读到CONCAT
并在pig脚本中为result4
编写了这段代码,但是它引发了一个错误。请告诉我什么是正确的方法。
答案 0 :(得分:1)
连接是针对字段的,但是您尝试组合多个别名。
组合别名的方法是使用加入。
根据代码的结构,使用(或添加)每个行的唯一标识符,在各种操作期间保持完整。然后在最后阶段将所有人加在一起。