使用 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 脚本删除文件的第一行和最后一行的主要内容,如果未能解决你的问题,请参考以下文章

使用 Powershell 从文件中删除最后一行

删除 JavaFx 文本区域的第一行

cmd去除csv首行

如何在 shell 脚本中使用 sed 从文件的每一行中删除单词? [复制]

在linux配置文件里怎么一行一行删除?

用于删除 CSV 文件第一行的 Unix 脚本