问题标签 [elephantbird]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
json - 用大象鸟加载嵌套的json后如何查询它
我对 HADOOP 和 pig 还很陌生。
所以 。我有一行 json 文件,都具有相同的架构:
我使用大象鸟加载所有的 json 文件:
到目前为止,唯一对我有用的是查询返回字节数组的“名称”字段。
然后我尝试将其转换为地图:
并得到
c: {tuple_0: (m:map[])}
数据看起来像:
({([F1#"abc",F2#44...])})
所以现在我需要过滤所有 pkg.F1 = "abc" 或所有 pkg.info.value = 122 等的。
我该怎么做?
一个代码示例将非常有帮助,因为我已经用谷歌搜索了很多。
谢谢
hadoop - 如何在 Pig Latin 中每行加载一个带有 JSON 数组的文件
现有脚本创建文本文件,每行包含一组 JSON 对象,例如,
我想在 Pig 中加载这些数据,分解数组并处理每个单独的对象。
我看过在 Twitter 的Elephant Bird中使用 JsonLoader无济于事。它不会抱怨 JSON,但是在运行以下命令时我得到“成功读取 0 条记录”:
我也尝试正常加载文件,将每一行视为包含单列字符数组,然后尝试将其解析为 JSON,但我找不到似乎可以解决问题的预先存在的 UDF。
有任何想法吗?
java - 象鸟mvn包错误
我已经在我的系统中安装了 hadoop 2.2。我想用象鸟罐。运行“mvn package”时出现以下错误。
错误:
我在 pom.xml 中添加了以下代码,但错误仍然存在。
我该如何解决这个错误?
系统配置
twitter - 如何在猪中使用 rcfilepigstorage
我想将一个文本文件加载到pig中,然后将其存储为rc文件我发现twitter在这个链接中提供了一个存储udf
有人能告诉我如何编译它并在我的猪代码中使用它吗?
java - 当未设置可选字段时,大象鸟库生成字段的默认值而不是 null
我目前正在使用 4.4 版的大象鸟猪库。如果我尝试从一个 thrift 对象创建一个元组,我希望未在对象中设置的字段在元组中被标记为 null。然而,默认值被放入元组中。例如
以下的输出应该是 (null,null,abc,null,null)
实际:(0,0,abc,0.0,0)
问题是字段的 isset 信息在转换为元组期间丢失。是故意做的吗?这个问题有什么解决方法吗?
json - 使用 Pig 展平复杂的嵌套 JSON,并在 | 中输出 分隔文件
我需要采用一些复杂的嵌套 JSON 并将其转换为制表符分隔的输出,其中输入 JSON 中的每个 ts 和 y 对都有一个唯一的输出行。我知道如何以制表符分隔格式输出,但无法以正确的方式展平 JSON。基于以下输入 JSON 和所需输出的任何建议?我正在使用 ElephantBird 加载 JSON。
我有以下输入 JSON:
我可以使用这个猪脚本加载它:
现在我想获得为每个 ts 和 y 对展平的元组,同时保留其他属性的属性。我已经尝试过使用扁平化和从地图中引用 kv 对生成的各种语句序列,但很挣扎。寻找有关如何获得此结果的建议:
amazon-web-services - ElephantBird 不适用于 AWS EMR
我正在尝试在 AWS EMR 中与 ElephantBird 一起运行 Pig 脚本。我正在使用 Hadoop 2.x 来执行此操作,但收到以下消息:
2014-09-09 14:53:11,001 INFO [main] org.apache.hadoop.mapred.MapTask:开始刷新地图输出 2014-09-09 14:53:11,029 INFO [main] org.apache.hadoop.io .compress.CodecPool:得到全新的压缩器 [.snappy] 2014-09-09 14:53:11,040 FATAL [main] org.apache.hadoop.mapred.YarnChild: Error running child : java.lang.IncompatibleClassChangeError: Found interface org.apache.hadoop.mapreduce.Counter,但在 com.twitter.elephantbird.pig.load.LzoBaseLoadFunc.incrCounter( LzoBaseLoadFunc.java:70) 在 com.twitter.elephantbird.pig.load.JsonLoader.getNext(JsonLoader.java:128) 在 org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigRecordReader.nextKeyValue(PigRecordReader.java: 211)在 org.apache.hadoop.mapred。MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:544) 在 org.apache.hadoop.mapreduce.task.MapContextImpl.nextKeyValue(MapContextImpl.java:80) 在 org.apache.hadoop.mapreduce.lib.map.WrappedMapper$Context。 nextKeyValue(WrappedMapper.java:91) at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144) at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:775) at org.apache .hadoop.mapred.MapTask.run(MapTask.java:341) 在 org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:167) 在 java.security.AccessController.doPrivileged(Native Method) 在 javax。 security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1548) at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java: 162)第544章.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144) 在 org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:775) 在 org.apache.hadoop.mapred.MapTask.run(MapTask .java:341) 在 org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:167) 在 java.security.AccessController.doPrivileged(Native Method) 在 javax.security.auth.Subject.doAs(Subject. java:415) 在 org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1548) 在 org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:162)第544章.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144) 在 org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:775) 在 org.apache.hadoop.mapred.MapTask.run(MapTask .java:341) 在 org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:167) 在 java.security.AccessController.doPrivileged(Native Method) 在 javax.security.auth.Subject.doAs(Subject. java:415) 在 org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1548) 在 org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:162)mapreduce.lib.map.WrappedMapper$Context.nextKeyValue(WrappedMapper.java:91) at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144) at org.apache.hadoop.mapred.MapTask.runNewMapper( MapTask.java:775) 在 org.apache.hadoop.mapred.MapTask.run(MapTask.java:341) 在 org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:167) 在 java.security。 AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1548) at org.apache.hadoop。 mapred.YarnChild.main(YarnChild.java:162)mapreduce.lib.map.WrappedMapper$Context.nextKeyValue(WrappedMapper.java:91) at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144) at org.apache.hadoop.mapred.MapTask.runNewMapper( MapTask.java:775) 在 org.apache.hadoop.mapred.MapTask.run(MapTask.java:341) 在 org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:167) 在 java.security。 AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1548) at org.apache.hadoop。 mapred.YarnChild.main(YarnChild.java:162)MapTask.run(MapTask.java:341) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:167) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject .doAs(Subject.java:415) 在 org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1548) 在 org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:162)MapTask.run(MapTask.java:341) at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:167) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject .doAs(Subject.java:415) 在 org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1548) 在 org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:162)
我尝试过使用不同版本的大象鸟(从 3.0.9 到 4.0.x),但它们似乎都不起作用。我将集群降级到 Hadoop 1.x,使用大象鸟没有问题。任何想法?
hadoop - 如何在 Pig 中将许多地图的元组拆分为不同的行
我在 Pig 中有一个如下所示的关系:
如您所见,我在一个元组中有三个地图对象。上面的所有数据都在关系中的第 0 美元字段内。因此,上面的数据与单个 bytearray 列有关。
数据加载如下:
如何将此数据结构拆分为三行,以便输出如下?
apache-pig - ElephantBird UDF:JSON 字段上的 ORDER BY 生成语法错误
我在 Hadoop 1.2.1 上使用 Pig 0.13.0。为了处理 JSON 文件,我还使用了 ElephantBird UDF 版本 4.5。到目前为止,我对 UDF 没有太大问题,但是当我尝试通过 json 字段订购别名时,pig 编译器不是很高兴,我收到以下错误:
脚本如下所示(查看 ORDER 语句):
我尝试删除(长)但无济于事。
hadoop - 无法使用大象鸟查询 hive 中的示例 AddressBook protobuf 数据
我正在尝试使用大象鸟来查询一些示例 protobuf 数据。我使用的是AddressBook示例,我将一些假的AddressBooks序列化为文件并将它们放在/user/foo/data/elephant-bird/addressbooks/下的hdfs中查询没有返回结果
我像这样设置表和查询:
当我尝试选择数据时,它没有返回任何结果(似乎没有读取行):
如果我创建一个非外部表或将数据显式导入外部表,我会看到同样的情况。
我的设置的版本信息:
更新:
我在日志中看到了这个错误。我在 HDFS 中的数据只是原始 protobuf(无压缩)。我想弄清楚这是否是问题所在,以及我是否可以读取原始二进制 protobuf。