Sax*_*ore 10 csv excel apache-pig
我很难从猪中获取数据并将其转换为CSV,我可以在Excel或SQL(或R或SPSS等)中使用,而无需大量操作......
我尝试过使用以下功能:
STORE pig_object INTO '/Users/Name/Folder/pig_object.csv'
USING CSVExcelStorage(',','NO_MULTILINE','WINDOWS');
Run Code Online (Sandbox Code Playgroud)
它创建了具有该名称的文件夹,其中包含许多part-m-0000#文件.我以后可以使用cat part*> filename.csv加入它们,但是没有标题,这意味着我必须手动放入它.
我已经读过PigStorageSchema应该创建另一个带有标题的位但它似乎根本不起作用,例如,我得到的结果就好像它刚刚存储一样,没有头文件:STORE pig_object INTO'/ Users /名称/文件夹/ pig_object'使用org.apache.pig.piggybank.storage.PigStorageSchema();
(我在本地和mapreduce模式下都试过这个).
有没有办法将Pig中的数据导入一个简单的CSV文件而没有这些多个步骤?
任何帮助将非常感激!
Lor*_*dig 31
我担心没有一个单行代表可以完成这项任务,但你可以提出以下内容(Pig v0.10.0):
A = load '/user/hadoop/csvinput/somedata.txt' using PigStorage(',')
as (firstname:chararray, lastname:chararray, age:int, location:chararray);
store A into '/user/hadoop/csvoutput' using PigStorage('\t','-schema');
Run Code Online (Sandbox Code Playgroud)
当PigStorage接受' -schema
'它将在输出目录中创建一个' .pig_schema
'和' .pig_header
'.然后你必须' .pig_header
'与' part-x-xxxxx
' 合并:
1.如果需要将结果复制到本地磁盘:
hadoop fs -rm /user/hadoop/csvoutput/.pig_schema
hadoop fs -getmerge /user/hadoop/csvoutput ./output.csv
Run Code Online (Sandbox Code Playgroud)
(因为-getmerge
你需要先输入一个输入目录.pig_schema
)
2.将结果存储在HDFS上:
hadoop fs -cat /user/hadoop/csvoutput/.pig_header
/user/hadoop/csvoutput/part-x-xxxxx |
hadoop fs -put - /user/hadoop/csvoutput/result/output.csv
Run Code Online (Sandbox Code Playgroud)
如需进一步参考,您还可以查看以下帖子:将
输出存储到单个CSV?
如何使用Hadoop FS shell将hadoop中的两个文件连接成一个?