gpt4 book ai didi

excel - 从 Pig 导出到 CSV

转载 作者:行者123 更新时间:2023-12-01 18:41:33 28 4
gpt4 key购买 nike

我在将 Pig 中的数据提取到 CSV 中时遇到了很多麻烦,我可以在 Excel 或 SQL(或 R 或​​ SPSS 等)中使用这些数据,而无需进行大量操作...

我尝试使用以下功能:

STORE pig_object INTO '/Users/Name/Folder/pig_object.csv'
USING CSVExcelStorage(',','NO_MULTILINE','WINDOWS');

它会创建具有该名称的文件夹,其中包含大量part-m-0000# 文件。我稍后可以使用 cat part* > filename.csv 将它们全部加入,但没有标题,这意味着我必须手动将其放入。

我读到 PigStorageSchema 应该创建另一个带有 header 的位,但它似乎根本不起作用,例如,我得到的结果与刚刚存储的结果相同,没有头文件:将 pig_object 存储到 '/Users/Name/Folder/pig_object'使用 org.apache.pig.piggybank.storage.PigStorageSchema();

(我在本地和mapreduce模式下都尝试过这个)。

有没有什么方法可以将 Pig 中的数据提取到一个简单的 CSV 文件中,而无需执行这些多个步骤?

任何帮助将不胜感激!

最佳答案

恐怕没有一个单行代码可以完成这项工作,但您可以提出以下内容(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');

何时 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

(由于 -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

如需进一步引用,您还可以查看这些帖子:
STORE output to a single CSV?
How can I concatenate two files in hadoop into one using Hadoop FS shell?

关于excel - 从 Pig 导出到 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13696036/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com