我正在写一个类似于以下的猪拉丁文字:
A = load 'data' using PigStorage('\t');
store A into my_data using PigStorage();
Run Code Online (Sandbox Code Playgroud)
这输出
(Bob, 10, 4.0)
(Jim, 11, 3.25)
(Paul, 9, 2.75)
Run Code Online (Sandbox Code Playgroud)
我想为存储在HDFS中的每个文件添加第一个标题行
(Name, Age, GPA)
(Bob, 10, 4.0)
(Jim, 11, 3.25)
(Paul, 9, 2.75)
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
Ala*_*ody 12
您可以使用CSVExcelStorage作为存储功能,它可以让您精确地执行您想要的操作:
STORE输出INTO'/ outputfolder /'USING org.apache.pig.piggybank.storage.CSVExcelStorage('\ t','NO_MULTILINE','UNIX','WRITE_OUTPUT_HEADER');
使用"WRITE_OUTPUT_HEADER"选项会将标题写入满足您用例的每个文件.
reo*_*toa 11
这对猪来说真的没有意义.每一行都是一个单独的数据记录,因此除非确实有一个名字的人Name
,年龄为Age
,且GPA为GPA
,这样的行是错误的.此外,Pig不保证输出字段的顺序(除非使用ORDER BY
),因此您的标题行可能会出现在任何地方.
您要求的是在Pig完成其工作后保持模式的方法,这样您就不必记住它是什么或在某处查找它.从Pig 0.10开始,PigStorage
通过将关系的模式作为JSON文件.pig_schema存储在与输出相同的目录中,可以实现这一点.有关这是什么以及如何使用它的详细信息,请参阅此页面.
归档时间: |
|
查看次数: |
7876 次 |
最近记录: |