使用loadfunc pig UDF将protobuf格式文件加载到pig脚本中

2024-03-07

我对猪的了解很少。我有 protobuf 格式的数据文件。我需要将此文件加载到 Pig 脚本中。我需要编写一个 LoadFunc UDF 来加载它。说函数是Protobufloader().

我的 PIG 脚本是

A = LOAD 'abc_protobuf.dat' USING Protobufloader() as (name, phonenumber, email);

我想知道的是如何获取文件输入流。一旦我掌握了文件输入流,我就可以将数据从 protobuf 格式解析为 PIG 元组格式。

PS:提前致谢


Twitter的开源库elephantbird有很多这样的加载器:https://github.com/kevinweil/elephant-bird https://github.com/kevinweil/elephant-bird

您可以使用 LzoProtobufB64LinePigLoader 和 LzoProtobufBlockPigLoader。https://github.com/kevinweil/elephant-bird/tree/master/src/java/com/twitter/elephantbird/pig/load https://github.com/kevinweil/elephant-bird/tree/master/src/java/com/twitter/elephantbird/pig/load

要使用它,您只需要执行以下操作:

define ProtoLoader com.twitter.elephantbird.pig.load.LzoProtobufB64LineLoader('your.proto.class.name');
a = load '/your/file' using ProtoLoader;
b = foreach a generate
  field1, field2;

加载后,它将自动转换为具有适当模式的猪元组。

但是,他们假设您将数据写入序列化的 protobuffer 中并由 lzo 压缩。

他们也有相应的作者,位于包 com.twitter.elephantbird.pig.store 中。 如果您的数据格式有点不同,您可以调整它们的代码以适应您的自定义加载器。

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

使用loadfunc pig UDF将protobuf格式文件加载到pig脚本中 的相关文章

随机推荐

  • 将 SQLite 客户端数据库与 MySQL 服务器数据库同步

    我已经在 xcode 中使用 sqlite3 创建了一个应用程序 我想创建一个名为sync 的按钮来与我的服务器中的 mysql 数据库同步 关于同步过程有什么建议吗 请告诉我 好吧 您意识到这是一个不小的问题 去年 我为一个商业应用程序编
  • 日志文件存在于日志目录中,但在未启用日志功能的情况下启动

    我已经开始学习 MongoDB 并尝试将其安装在 Ubuntu 上 我最近从 Windows 转移到 Ubuntu 面临问题开始sudo service mongodb start 以下是日志 Sun Aug 4 20 25 36 774
  • 在 ViewPager 中多次使用一个 Fragment

    是否可以在视图分页器中多次使用一个片段 我正在尝试使用 ViewPager 构建动态更新的 UI 我想使用相同的设计 基本上是相同的片段 每个页面都有不同的数据 就像列表视图适配器一样 您可以为 ViewPager 中的每个页面实例化相同的
  • 如何获取在 iOS 示例应用程序中使用的图层名称? (张量流)

    我对 Tensorflow 非常陌生 我正在尝试使用 inception v3 网络来训练一些东西 以便在 iPhone 应用程序中使用 我设法将图表导出为协议缓冲区文件 手动删除 dropout 节点 我希望是正确的 并将该 pb 文件放
  • Android locationManager requestLocationUpdates 不起作用

    我正在开发一个应用程序 其中列出了距离用户最近的餐馆 单击刷新按钮后 它会列出用户当前位置的餐馆 我使用位置管理器并仅在活动进入前台 onResume 时请求更新 以避免持续使用电池 当应用程序进入 onPause 时 位置更新将停止 当我
  • 如何以及是否值得集成 Java Webapp + drools + Guvnor?

    我计划引入 Java 规则 目前正在评估 Drools 以从应用程序中外部化 物理上和逻辑上 业务规则 由于这些业务规则通常由企业制定 因此我希望企业通过 GUI 对规则进行必要的更改 我在 Google 上搜索了关于集成 java web
  • 更改 tvOS 上 SwiftUI 中按钮的颜色

    我正在尝试更改 SwiftUI 的颜色Button在电视操作系统上 修改background几乎可以工作 除了你可以看到底层UIButton实际上是在背景顶部使用圆形半透明图像 这会导致矩形背景位于圆形图像之外的角落处出现不同的颜色 Add
  • 如何在从url加载的ImageView中淡入图片

    我想对 ImageView 应用淡入动画 以创建从 url 加载的图像在下载完成时淡入的效果 我知道如何将图像从 url 下载到 ImageView 例如这个答案 https stackoverflow com questions 2471
  • 如何通过 Reasoning 实现 Apache Jena 中命名空间之间的映射?

    Goal 我不想在本体之间实现基于规则的映射 以完成数据迁移的常见任务 实现目标的方式 为了实现这一点 我开发了一个抽象数据结构 它能够存储任何数据类型的 xml 表示形式提供的所有信息 然后我编写了一个解析器 它根据目标文档类型定义构造了
  • 获取远程日志,而不是提交

    如何在不获取更改 提交的情况下获取远程日志 我只想查看日志 看看自上次以来是否有任何新的更改pull 基本上可以避免stash or commit我的改变先 git 帮助文件有这个例子 它以倒置的形式应该给出我想要的结果 git log m
  • WPF 中带有标题的边框

    有谁知道如何在 WPF 中获得带有标题的边框 即网络浏览器显示 标签的方式 有没有一种简单的方法 比如设置属性 或者我必须制作一个 ControlTemplate 也许是一个GroupBox http msdn microsoft com
  • 使用 JUnit 比较 ArrayList 是否相等的简单方法?

    使用 JUnit 比较 ArrayList 是否相等的简单方法是什么 我需要实现相等接口吗 或者有一个简单的 JUnit 方法可以使它更容易吗 对于列表相等性 您无需执行任何特殊操作 只需使用assertEquals即可 ArrayList
  • Python __enter__ / __exit__ 与 __init__ (或 __new__)/ __del__

    我已经搜索过 但找不到任何使用 python 的充分理由 enter exit 而不是 init or new del 我明白那个 enter exit 旨在与使用with作为上下文管理器的声明 以及with声明很棒 但与之相对应的是 这些
  • 如何循环关闭容器

    我有一个产品列表 我想在产品 Feed 中展示广告 我想要类似的东西 div div Bla div div Bla div div Bla div div div Adsense Stuff div div div Bla div div
  • 如何正确使用温斯顿

    我已阅读使用winston 包登录node js 的文档 我的问题 我是否需要将日志模块添加到需要的每个页面logging 还是温斯顿以某种方式拦截console log and console error 谢谢你的时间 通常 您需要在使用
  • jquery 使用 html5 模式进行验证

    如何使 jQuery 验证 支持 HTML 5 模式 如果不需要在每个字段上指定模式 那就太好了 我知道我可以做到这一点 如下 但是有更好的方法吗 form validate rules password pattern A Za z0 9
  • servicestack with funq - 按照惯例自动装配

    我有一个在其构造函数中采用 IMyDependency 的服务 IMyDependency MyDependency 和服务都位于同一个程序集中 MyDependency 有一个单一的 公共的 无参数的构造函数 令我惊讶的是 这不起作用 c
  • 如何让 github actions 工作流程使用机器人名称将生成的文档推送到同一组织中的其他存储库

    我正在github上开发一个python包 在 github 的一个组织下我有两个存储库myorg package and myorg documentation The packagerepo 包含 python 包以及构建 sphinx
  • glmnet - 变量重要性?

    我正在使用 glmnet 包来执行 LASSO 回归 有没有办法获得所选单个变量的重要性 我考虑对通过 coef 命令获得的系数进行排名 即距零的距离越大 变量越重要 这是一个有效的方法吗 感谢您的帮助 cvfit cv glmnet x
  • 使用loadfunc pig UDF将protobuf格式文件加载到pig脚本中

    我对猪的了解很少 我有 protobuf 格式的数据文件 我需要将此文件加载到 Pig 脚本中 我需要编写一个 LoadFunc UDF 来加载它 说函数是Protobufloader 我的 PIG 脚本是 A LOAD abc proto