将原始 JSON 加载到 Pig 中

2024-03-06

我有一个文件,其中每一行都是一个 JSON 对象(实际上,它是 stackoverflow 的转储)。我想尽可能轻松地将其加载到 Apache Pig 中,但我无法弄清楚如何告诉 Pig 输入格式是什么。这是一个条目的示例,

{ 
"_id" : { "$oid" : "506492073401d91fa7fdffbe" }, 
"Body" : "....", 
"ViewCount" : 7351, 
"LastEditorDisplayName" : "Rich B", 
"Title" : ".....", 
"LastEditorUserId" : 140328, 
"LastActivityDate" : { "$date" : 1314819738077 }, 
"LastEditDate" : { "$date" : 1313882544213 }, 
"AnswerCount" : 12, "CommentCount" : 19, 
"AcceptedAnswerId" : 7, 
"Score" : 83, 
"PostTypeId" : "question", 
"OwnerUserId" : 8, 
"Tags" : [ "c#", "winforms" ], 
"CreationDate" : { "$date" : 1217540572667 }, 
"FavoriteCount" : 13, "Id" : 4, 
"ForumName" : "stackoverflow.com" 
}

有没有一种方法可以将其中每一行都是上述行之一的文件加载到 Pig 中,而无需手动指定模式?或者也许是一种根据所有对象中观察到的(可能是嵌套的)键自动生成模式的方法?如果我确实需要手动指定架构,架构字符串会是什么样子?

Thanks!


快速简单的方法:使用 Twitter 的elephantbird 项目。里面有一个名为 loadercom.twitter.elephantbird.pig.load.JsonLoader。像这样直接使用时,

A = LOAD '/path/to/data.json' USING com.twitter.elephantbird.pig.load.JsonLoader() as (json:map[]);
B = FOREACH A GENERATE json#'fieldName' AS field_name;

嵌套元素不会被加载。但是,您可以通过将其更改为轻松解决此问题(如果需要),

A = LOAD '/path/to/data.json' USING com.twitter.elephantbird.pig.load.JsonLoader('-nestedLoad')

包含elephantbird很容易——只需使用Maven(或等效的)依赖管理器将项目“elephant-bird”与组织“com.twitter.elephantbird”拉出来,然后发出通常的命令register猪的命令

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

将原始 JSON 加载到 Pig 中 的相关文章

  • UNWIND 从 JSON 文件加载的多个不相关的数组

    我试图通过一次调用 apoc load json 来展开多个数组属性 我的版本不能完全工作 某些关系无法加载 我的猜测是 这是由于通过WITH 命令进行输出管道造成的 如果我为每个基于数组的属性单独运行展开 我可以加载所有内容 但我很好奇如
  • 如何使用 RSpec 检查 JSON 响应?

    我的控制器中有以下代码 format json render json gt flashcard gt flashcard lesson gt lesson success gt true 在我的 RSpec 控制器测试中 我想验证特定场景
  • 如何使用 PhpUnit 测试在 POST 方法中传递 JSON?

    我正在使用 symfony 3 0 和 phpUnit 框架 3 7 18 单元测试文件 abcControllerTest php namespace AbcBundle Tests Controller use Symfony Comp
  • 覆盖 QWebView 中的页面回复

    我试图在 Qt 的 QWebView 中拦截页面 表单请求 并在某些情况下使用替代内容进行响应 QNetworkReply ngcBrowser createRequest Operation operation const QNetwor
  • JSON 解析器从大型 JSON 文件中逐条读取

    我有一个巨大的 JSON 文件 1GB 它基本上是以下格式的对象数组 x y p q x1 y1 p1 q1 我想解析这个文件 这样所有的数据都不会加载到内存中 基本上我想获取例如 数组中的前 1000 个对象进行内存处理 然后将接下来的
  • Python 中的 JSON 到 YAML:如何获得正确的字符串操作?

    我正在使用PyYAML 库 https github com yaml pyyaml将 json 转换为 yaml 但是引号在不应该的情况下从字符串值中删除了 它们只能从钥匙上移除 我已将 default flow style 选项与 ya
  • 如何在 Flask 中获取 POSTed JSON?

    我正在尝试使用 Flask 构建一个简单的 API 现在我想在其中读取一些 POSTed JSON 我使用 Postman Chrome 扩展进行 POST 我 POST 的 JSON 很简单 text lalala 我尝试使用以下方法读取
  • Spring-roo REST JSON 控制器损坏日期字段

    我有一个以两种方式使用的数据实体 我在页面加载时用其中的一些数据填充表格 当您单击该列的一行时 我通过 AJAX 获取该项目的详细信息并将其显示在表单字段中 我在服务器端使用 Spring Roo 生成的 REST 端点 在客户端使用 Ba
  • 通过Oozie命令行指定多个过滤条件

    我正在尝试通过命令行搜索一些特定的 oozie 作业 我使用以下语法进行相同的操作 oozie jobs filter status RUNNING status KILLED 但是 该命令仅返回正在运行的作业 而不是已杀死的作业 需要帮助
  • 使用本地存储在从另一个表保存的 HTML TABLE 中打印 JSON,以便我在另一个页面上打印我的表

    在我的作业中 我必须使用用户输入中的数据并将数据保存在本地存储中 我必须以水平表格式将这些数据从本地存储打印到其他页面 为此 我编写了用于用户输入并将数据保存在本地存储中的代码 div p p div
  • 使用 JSON 参数的 Postgres 批量 INSERT 函数

    这是一个plpgsqlpostgres 的函数9 6 它试图INSERT一行 如果插入没有失败 由于违反键约束 那么它会运行更多命令 CREATE FUNCTION foo int text text RETURNS void AS BEG
  • 在 MySQL 中使用 COUNT 时如何返回 0 而不是 null

    我使用此查询返回存储在 sTable 中的歌曲列表以及存储在 sTable2 中的总项目数 SQL queries Get data to display sQuery SELECT SQL CALC FOUND ROWS str repl
  • php 数组中出现意外的 json 输出结构

    我正在尝试转换动态数据 如何从 PHP 获取此 JSON JSON 122240cb 253c 4046 adcd ae81266709a6 item 0 3 这就是我所做的 但它不起作用 PHP json array 122240cb 2
  • 在react中使用map方法渲染JSON API

    我对 JSON 对象 数组和映射方法的语法和结构有困难 我是 React 新手 正处于学习的初始阶段 这是我粘贴在下面的 JSON 文件代码 cloud Asia availability last15Min 100 last24Hour
  • 如何将单引号转义为双引号转义为单引号

    以下是符合此描述的命令行示例 curl http dumbdomain com solr collection2 update json H Content type application json d add doc uid 79729
  • MapReduce 中 1 个任务的减速器数量

    在典型的 MapReduce 设置 如 Hadoop 中 1 个任务使用多少个减速器 例如计算单词数 我对 Google MapReduce 的理解意味着只涉及 1 个减速器 那是对的吗 例如 单词计数会将输入分为 N 个块 并且 N 个
  • 使用 JaxRS 自定义 JSON 序列化

    在 Web 服务调用中 我想返回具有此 JSON 结构的对象 date 30 06 2014 price val 12 50 curr EUR 我想将此 JSON 代码映射到此 Java 结构 使用乔达时间 http www joda or
  • 在 JsonConverter 中递归调用 JsonSerializer

    我正在写一个JsonConverter要执行一些我需要在读 写时完成的转换任务 特别是 我采用现有的序列化行为 并在写入 读取时添加一些附加属性 在 的里面JsonConverter 我想利用通过的JsonSerializer实例来执行大部
  • Hadoop 减速器数量配置选项优先级

    以下3个设置reduce数量的选项的优先级是什么 换句话说 如果三者都设置了 会考虑哪一个呢 Option1 setNumReduceTasks 2 within the application code Option2 D mapredu
  • C# - OutOfMemoryException 在 JSON 文件上保存列表

    我正在尝试保存压力图的流数据 基本上我有一个压力矩阵定义为 double pressureMatrix new double e Data GetLength 0 e Data GetLength 1 基本上 我得到了其中之一pressur

随机推荐

  • 为什么call指令的操作码表示为FF15?

    我仍在学习汇编并尝试将指令与其操作码连接起来 阅读 pdf 在https code google com p corkami wiki PE101 show content https code google com p corkami w
  • 如何将 Qt5 和 Qt Creator 2.6.1 与 VS 2012 的编译器一起使用?

    官方下载 http qt project org downloads现在仅包含 VS 2010 的 Qt 库 5 0 0 我在 VS 2012 Express 中尝试了它们 但收到一条错误消息 错误 LNK2038 检测到 MSC VER
  • 有没有办法在所有 jquery 脚本运行后查看网页的源代码?

    我目前使用 Chrome Firefox 进行 Web 开发 有没有一个插件 或者我只是另一种方式 您可以在所有 jQuery 插件运行后查看 HTML 源代码 我只是想看看 jQuery 修改了什么以及如何修改 HTML Firebug
  • 带有 gcc stdlib 的 icpc C++11

    我正在使用 icpc 非可选 并且使用 std c 0x 进行编译 因此我可以使用ambas 然而 当我这样做时 它会使用 gcc stdlib 创建 havok 其中一个支持另一个不支持的功能 我尝试过定义 GXX EXPERIMENTA
  • 使用指定存储库中的 Git 分支动态填充 Jenkins Choice 参数

    我有一个参数化的 Jenkins 作业 它需要输入特定 Git 存储库中的特定 Git 分支 目前该参数是一个字符串参数 有没有办法让这个参数成为选择参数并用Git分支动态填充下拉列表 我不想要求有人在每次创建新分支时手动配置下拉列表来维护
  • php-fpm 进程监控/分析

    我最近遇到了 php fpm 进程使用 如活动进程数量 的问题 达到了最大可用进程的峰值 并停止执行其他脚本 直到有问题的进程完成 更详细一点 我当前的 php fpm 设置是 pm static pm max children 100 我
  • 在 Java 中以编程方式清除控制台

    我创建了一个示例 Java 应用程序 我想清除窗口选项 即 Register Login Clear 如果用户按 3 我需要以编程方式清除所有选项 就像是Console clear 有什么办法可以用 Java 做到这一点吗 您将需要输出一堆
  • 如何将较小的位图复制到较大的位图?

    希望这应该是一个简单的问题 我正在尝试将一系列小位图复制到较大的位图中 将它们并排排列 像素中没有任何间隙或重叠 例如 如果我有 3 个正方形位图 我想将它们复制到一个细长的矩形中 我知道如何做相反的事情 即从较大的位图创建一个小位图 但不
  • 与应用内购买的“无法连接到 iTunes”相关的供应商 ID 错误消息是什么?

    这是一条神秘的错误消息 LaunchServices 无法获取供应商ID 我猜这是某个苹果服务器现在宕机了 很快就会恢复在线 背景 我的 iOS 应用程序之前没有批准的应用内购买 因此这仍然是必须提交新版本应用程序以及新的应用内购买产品的阶
  • Angular 5 无法找到“object”类型的不同支持对象“[object Object]”。 NgFor 仅支持绑定到 Iterables,例如数组

    我正在尝试从我的后端 api 返回产品并将其显示在我的前端页面上 当我执行 ngFor 循环时 它给了我一个错误 这是我的代码 我的后端API data 0 name perferendis totalPrice 323 76 rating
  • Rails 设计:after_confirmation

    有没有办法创建一个after confirmation do something 目标是在用户确认使用 Devise 后发送电子邮件 confirmable 我正在使用 Devise 3 1 2 它有一个占位符方法after confirm
  • 如何使用stdext::hash_map?

    我想看一个如何正确重写 stdext hash compare 的简单示例 以便为我自己的用户定义类型定义新的哈希函数和比较运算符 我正在使用 Visual C 2008 这就是你可以做到的 class MyClass Hasher con
  • Vue Axios 动态 URL

    我想在 vue js 应用程序中动态创建 axios post 操作的 URL 路径 这是动作 editProduct function dispatch commit payload axios put http localhost 80
  • 如何删除单个链表中的循环?

    我不确定在不使用 O N 内存和标志的情况下如何找到循环的开始 找到循环内部的一个节点 具体参见1800 INFORMATION的回答 我们称这个节点为C 通过将指针从 C 前进直到再次到达 C 来求出循环的长度 循环的长度是它所采取的步数
  • 如何在方案中编写程序来查找数字列表的因数

    这是单个整数的代码 它如何扩展到函数列表 define factors n define factors d cond gt d n list modulo n d 0 cons d factors d 1 else factors d 1
  • Java日历的setMonth方法工作错误吗?

    我有如下的小代码 我预计结果应该是7 但它打印了6 如果我取消注释该行tmp get Calendar MONTH 它运行正常 打印7 请告诉我原因 我在 MacOS 中使用 JDK 1 7 0 25 public static void
  • 安装 scrapy 清理失败

    我一直在努力得到Scrapy使用 pip 安装 以便抓取 NBA 赛季的赛程表和得分 在过去的 6 个小时里 我一直在努力尝试安装它 我已经逐字按照设置说明进行操作 但仍然无法使其正常工作 任何帮助将不胜感激 终端窗口输出如下 非常感谢 顺
  • Keycloak 重定向 URI 正在将端口 0 添加到 url

    在keycloak 中遇到redirect uri 错误 发现 JIRA 记录了相同的问题KEYCLOAK 7237 https issues jboss org browse KEYCLOAK 7237 只是想检查一下是否有解决办法 有人
  • AngularJS:是否可以使控制器中的特定表单输入字段无效?

    我有一个地址文本输入字段 每当输入地址并单击输入字段旁边的搜索按钮时 我都会对地址进行地理编码 并将输入文本替换为地理编码器的结果 我还设置了一个范围变量 addressOk 是否可以根据以下内容使该特定表单输入字段无效 scope add
  • 将原始 JSON 加载到 Pig 中

    我有一个文件 其中每一行都是一个 JSON 对象 实际上 它是 stackoverflow 的转储 我想尽可能轻松地将其加载到 Apache Pig 中 但我无法弄清楚如何告诉 Pig 输入格式是什么 这是一个条目的示例 id oid 50