Apache PIG - 如何更改文件的标准输出名称“part-r-00000”?

Posted

技术标签:

【中文标题】Apache PIG - 如何更改文件的标准输出名称“part-r-00000”?【英文标题】:Apache PIG - How to change the standard output name "part-r-00000" of files? 【发布时间】:2015-04-28 23:03:41 【问题描述】:

我有一个 .pig 脚本,它创建一个包含一些计算数据的文件。 我希望输出文件名为“result.txt”,而不是无意义的标准输出名称“part-r-00000”。

我的 .pig 脚本中的最后一个条目是

使用 PigStorage() 将 C 存储到“结果”中;

因此,“result”是 HDFS 中应该存储 result.txt 的文件夹的名称。

我该怎么做?

【问题讨论】:

org.apache.pig.piggybank.storage 中有很多可用的存储方法..你可以试试这些.. 【参考方案1】:

part-r-XXXXX 并非毫无意义,具体取决于您打算如何使用它们。如果您需要将此 pig 脚本的结果加载到另一个 pig 脚本中,您可以这样做:

A = LOAD 'result' USING PigStorage() AS (...) ;

LOAD 可以将目录作为输入,并将加载该目录中的每个文件。

如果您需要将输出(本地)作为单个文本文件处理,那么 PIG 没有任何内置功能可以完成此操作。您需要编写一个脚本来从 hdfs 中提取结果并将所有 part-r-XXXXX 文件连接在一起。

【讨论】:

以上是关于Apache PIG - 如何更改文件的标准输出名称“part-r-00000”?的主要内容,如果未能解决你的问题,请参考以下文章

Pig:更改输出文件 NAME 的格式

Apache Pig - 如何从 CSV 文件中读取数据

apache pig Java UDF - 更改属性中的值似乎并没有坚持

Apache Pig - 如何维护一个分布式查找表以供我的 python UDF 访问?

如何使用 apache pig 递归加载文件

如何使用 apache pig 在 hadoop 集群上加载文件?