使用 Pig 脚本删除文件的第一行和最后一行
Posted
技术标签:
【中文标题】使用 Pig 脚本删除文件的第一行和最后一行【英文标题】:Remove First and last line of File using Pig Script 【发布时间】:2016-10-14 10:16:14 【问题描述】:我想使用 pig 脚本在 HDFS 中删除我的文件的第一行和最后一行/行。我尝试使用 Rank 来实现这一点并且它有效,但我应该知道要删除它的最后一个排名数字,但我的文件是动态的,它可以有或多或少的行,因为这种情况我无法找到任何事物。请帮忙
编辑: 我的数据很大,所以我无法创建架构,也无法将它们分组以使用 MIN() 如何实现这一点?
【问题讨论】:
【参考方案1】:一旦你有 Rank 可用,你可以通过 MIN 和 MAX eval 函数获得要排除的第一个和最后一个排名(即文件的第一行和最后一行)。这样您就不需要对排名过滤器进行硬编码。
-
Eval function MAX
Eval function MIN
注意:这是针对猪 0.16.0 版的。
【讨论】:
还有其他方法可以实现吗? 我的数据很大,我无法创建架构并将它们分组。在那种情况下,敏不适合我。 警告,这将删除负载的第一行或最后一行。如果您使用 load 加载包含多个文件的目录,则需要更复杂的技巧才能获得所需的结果!以上是关于使用 Pig 脚本删除文件的第一行和最后一行的主要内容,如果未能解决你的问题,请参考以下文章