我的数据目录中有50个文本文件(路径:/home/admin/desktop/data)。我的任务是将文本文件中的数据展平(标记化),并将输出存储在50个输出文件中。
以下是我为完成这项工作而建立的关系:
--This will load all the 50 text files.
A = Load '/home/admin/Desktop/data' Using PigStorage(',');
--This relation will create every word as a token and will flatten the data.
B = FOREACH A GENERATE FLATTEN(TOKENIZE($0));
STORE B into '/home/ameya/Desktop/PigOutput';
现在,当我执行这个pig脚本时,我只得到一个输出文件和50个输入文件。
如何得到50个不同的输出文件,每个文件包含与输入文件中的数据相对应的输出数据?
2条答案
按热度按时间kulphzqa1#
split运算符可用于根据某个表达式将关系的内容划分为两个或多个关系。根据表达式中提供的条件,将执行以下两种操作之一:
元组可以分配给多个关系
元组不能分配给任何关系
在pig中用于加载、展平和存储的目录中有多个文件:
正在加载以上目录:
根据您的要求格式化数据。我采取了和问题中相同的行动。
使用
SPLIT
运算符根据条件将关系拆分为多个关系。输出:
qq24tv8q2#
你试过Pig多存储自定义项吗?
如果您想为单独的50个i/p文件创建50个o/p文件,那么最好运行pig脚本50次(在一个循环中),并使用i/p文件和o/p文件作为pig脚本的参数。