用 Pig Latin 每组写入一个文件

2024-02-11

问题:我有许多包含 Apache Web 服务器日志条目的文件。这些条目不按日期时间顺序排列,并且分散在文件中。我正在尝试使用 Pig 读取一天的文件,按日期时间对日志条目进行分组和排序,然后将它们写入以其包含的条目的日期和小时命名的文件中。

Setup:导入文件后,我使用正则表达式获取日期字段,然后将其截断为小时。这会生成一个集合,其中一个字段中包含记录,而另一个字段中的日期被截断为小时。从这里我将在日期时间字段上进行分组。

第一次尝试:我的第一个想法是使用 STORE 命令,同时使用 FOREACH 迭代我的组,很快发现这对 Pig 来说并不酷。

第二次尝试:我的第二次尝试是使用 Piggybank 中的 MultiStorage() 方法,在我查看该文件之前,该方法效果很好。问题是 MulitStorage 想要将所有字段写入文件,包括我用来分组的字段。我真正想要的只是写入文件的原始记录。

问题:那么...我是否使用 Pig 来做一些不该做的事情,或者有没有更好的方法让我使用 Pig 来解决这个问题?现在我有了这个问题,我将编写一个简单的代码示例来进一步解释我的问题。一旦我有了它,我就会把它发布在这里。提前致谢。


开箱即用,Pig 没有很多功能性。它完成基本的工作,但很多时候我发现自己必须编写自定义 UDF 或加载/存储函数才能从 95% 的方式达到 100% 的方式。我通常觉得这是值得的,因为仅仅编写一个小的存储函数比编写一个整个 MapReduce 程序要少很多 Java。

你的第二次尝试非常接近我会做的。您应该复制/粘贴源代码MultiStorage或者使用继承作为起点。然后,修改putNext方法删除组值,但仍写入该文件。很遗憾,Tuple http://pig.apache.org/docs/r0.10.0/api/org/apache/pig/data/Tuple.html没有remove or delete方法,因此您必须重写整个元组。或者,如果您只有原始字符串,只需将其拉出并输出包裹在Tuple.

一些有关编写加载/存储函数的一般文档,以防您需要更多帮助:http://pig.apache.org/docs/r0.10.0/udf.html#load-store-functions http://pig.apache.org/docs/r0.10.0/udf.html#load-store-functions

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用 Pig Latin 每组写入一个文件 的相关文章

随机推荐

  • 如何在 DropDownList 控件中列出 Active Directory 中的所有用户

    我正在使用 Visual Studio 2005 C 我正在尝试检索 Active Directory 中的用户列表并将其插入到下拉列表控制 我可以知道如何提取用户以及如何将它们插入到下拉列表控制 EDIT 我希望完成许多功能部分 首先是列
  • bigQuery Google Cloud 如何与其他用户共享数据集?

    我使用我的 userA 帐户在 Google Cloud 中定义了一个 bigQuery 数据集 我希望属于同一组的同事 userB 能够查看我定义的数据集 使用bq命令行界面中 userB 可以看到项目 但看不到数据集 如何与用户B共享用
  • 如何获取表单内所有输入的ID?

    如何获取数组中表单内输入元素的所有 id ids myform input id map function return this id get
  • Angular:嵌入、设置SVG元素的颜色

    我有一个component html这超出了我的 svg 组件
  • TinyMCE gulp 配置

    我正在构建一个 Web 应用程序 我想使用 TinyMCE 我正在使用 gulp 和 browserify 我已经通过 npm 下载了 TinyMCE 并且在我的 app js 文件中需要它并运行gulp命令但我收到此错误Failed to
  • 数组无法解析?这是构建路径问题吗?

    当我打字时Arrays sort arr 在 Eclipse 中 我收到此错误Arrays cannot be resolved当我左键单击红色下划线时Arrays我不明白这个词import java util Arrays正如预期的那样
  • Spring AOP:仅建议使用上下文 Bean?

    我是 Spring AOP 的新手 我尝试使用方面进行日志记录 这是我的配置 方面 Aspect public class LoggerAspect Pointcut execution aop LoggerAspTest private
  • 如何在不安装条形码扫描仪应用程序的情况下使用ZXing库

    我一直在开发一个 Android 应用程序来扫描条形码和 QR 码并将结果发送到其他应用程序 HTTP 我已经通过互联网阅读了大部分文档 并在 stackoverflow 中阅读了它并使其正常工作 我可以在我的设备上运行独立的 zxing
  • 原则 2 多级继承

    我在多级继承方面遇到一些麻烦 ORM Entity ORM Table name et date ORM InheritanceType JOINED ORM DiscriminatorColumn name type type strin
  • Android 对话框 - 自定义背景而不是变暗或模糊

    我创建了自己的自定义对话框 它工作正常 但我想将变暗的背景更改为自定义图案 例如图像文件或 xml 形状 我怎样才能做到这一点 请注意 我不想改变调光强度 但我只想用一种模式替换这种调光 我找到了解决这个问题的方法 我从 vipul mit
  • 动态创建 Yii FormModel 对象 (CFormModel)

    我正在开发一个涉及在高抽象级别生成表单的应用程序 它是一个 CMS 应用程序 我想动态创建 CFormModel 对象并即时设置表单字段 我想我可以通过扩展 CFormModel 然后动态创建代表表单字段的类属性 Yii 行话中的 属性 来
  • 从 url 加载 Rdata 文件

    我在加载文件时遇到困难 因此它不会丢失其尺寸 所以这就是我现在所处的位置 gt mood data lt read table http www psychology mcmaster ca bennett psy710 datasets
  • 检查 android.graphics.path 与其自身的交集

    我想检查路径是否与自身相交 如果是 则碰撞在 x y 只是为了突出显示 我如何检查一条路径是否与另一条路径相交也非常有趣 这是一个屏幕截图 可以更好地解释我的意思 https i stack imgur com JrEmN png http
  • Visual Studio Cordova:打包 IOS 应用程序时,如何将配置文件添加到 XCode 的“构建设置”的代码签名部分?

    使用 Visual Studio Cordova 时 我按照以下说明将应用程序发布到 Apple App Store http taco visualstudio com en us docs tutorial package publis
  • iOS 连接数据库的正确架构?

    我是一名 Web 开发人员 正在着手创建移动 iOS Android 应用程序 因此 我想要了解的是应该如何构建移动应用程序来访问 发布 更新 删除 存储在中央服务器上的数据 出于说明目的 假设我正在创建一个移动食谱应用程序 名为 MyRe
  • 为 Selenium 创建 HTTP Basic auth Chrome 扩展(MWE 可用)

    我正在尝试使用 Google Chrome 运行 Selenium 测试 我希望使用 HTTP 基本身份验证登录 这在 Selenium 中没有实现 因此建议加载扩展 我正在使用来自的代码 https github com RobinDev
  • Linq to SQL 外键

    数据库表的 DDL Users id int identity name varchar unique PCs id int idnetity name varchar unique userid FK to Users Apps id i
  • 将哈希表转换为字符串数组

    如何将哈希表转换为字符串数组 假设 l table 是一个哈希表 如果我尝试 l array l table format table 那么 l array 是一个数组 但是一个 FormatEntryData 对象的数组 如果我做 str
  • 多线程环境下的增量和减量

    我正在尝试在多线程环境中 int 变量的经典增量 减量 这是我的示例代码 public class SyncIncDec public static void main String args SyncCounter count new S
  • 用 Pig Latin 每组写入一个文件

    问题 我有许多包含 Apache Web 服务器日志条目的文件 这些条目不按日期时间顺序排列 并且分散在文件中 我正在尝试使用 Pig 读取一天的文件 按日期时间对日志条目进行分组和排序 然后将它们写入以其包含的条目的日期和小时命名的文件中