问题: 我有许多包含 Apache Web 服务器日志条目的文件。这些条目不是按日期时间顺序排列的,而是分散在文件中的。我正在尝试使用 Pig 读取一天的文件,按日期时间对日志条目进行分组和排序,然后将它们写入以它包含的条目的日期和小时命名的文件。
设置: 导入文件后,我使用正则表达式获取日期字段,然后将其截断为小时。这会产生一个集合,该集合在一个字段中具有记录,而在另一个字段中将日期截断为小时。从这里我在日期-小时字段上进行分组。
第一次尝试: 我的第一个想法是在使用 FOREACH 遍历我的组时使用 STORE 命令,并很快发现使用 Pig 并不酷。
第二次尝试: 我的第二次尝试是在存钱罐中使用 MultiStorage() 方法,在我查看文件之前效果很好。问题是 MulitStorage 想要将所有字段写入文件,包括我用来分组的字段。我真正想要的只是写入文件的原始记录。
问题: 那么......我是否将 Pig 用于它不打算用于的东西,或者有没有更好的方法让我使用 Pig 来解决这个问题?既然我有这个问题,我将处理一个简单的代码示例来进一步解释我的问题。一旦我有了它,我会在这里发布。提前致谢。