问题标签 [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.

0 投票
2 回答
2553 浏览

json - 用大象鸟加载嵌套的json后如何查询它

我对 HADOOP 和 pig 还很陌生。

所以 。我有一行 json 文件,都具有相同的架构:

我使用大象鸟加载所有的 json 文件:

到目前为止,唯一对我有用的是查询返回字节数组的“名称”字段。

然后我尝试将其转换为地图:

并得到

c: {tuple_0: (m:map[])}

数据看起来像:

({([F1#"abc",F2#44...])})

所以现在我需要过滤所有 pkg​​.F1 = "abc" 或所有 pkg​​.info.value = 122 等的。

我该怎么做?

一个代码示例将非常有帮助,因为我已经用谷歌搜索了很多。

谢谢

0 投票
1 回答
854 浏览

hadoop - 如何在 Pig Latin 中每行加载一个带有 JSON 数组的文件

现有脚本创建文本文件,每行包含一组 JSON 对象,例如,

我想在 Pig 中加载这些数据,分解数组并处理每个单独的对象。

我看过在 Twitter 的Elephant Bird中使用 JsonLoader无济于事。它不会抱怨 JSON,但是在运行以下命令时我得到“成功读取 0 条记录”:

我也尝试正常加载文件,将每一行视为包含单列字符数组,然后尝试将其解析为 JSON,但我找不到似乎可以解决问题的预先存在的 UDF。

有任何想法吗?

0 投票
1 回答
1589 浏览

java - 象鸟mvn包错误

我已经在我的系统中安装了 hadoop 2.2。我想用象鸟罐。运行“mvn package”时出现以下错误。

错误:



我在 pom.xml 中添加了以下代码,但错误仍然存​​在。

我该如何解决这个错误?

系统配置

0 投票
1 回答
330 浏览

twitter - 如何在猪中使用 rcfilepigstorage

我想将一个文本文件加载到pig中,然后将其存储为rc文件我发现twitter在这个链接中提供了一个存储udf

http://grepcode.com/file/repo1.maven.org/maven2/com.twitter.elephantbird/elephant-bird-rcfile/3.0.8/com/twitter/elephantbird/pig/store/RCFilePigStorage.java

有人能告诉我如何编译它并在我的猪代码中使用它吗?

0 投票
1 回答
155 浏览

java - 当未设置可选字段时,大象鸟库生成字段的默认值而不是 null

我目前正在使用 4.4 版的大象鸟猪库。如果我尝试从一个 thrift 对象创建一个元组,我希望未在对象中设置的字段在元组中被标记为 null。然而,默认值被放入元组中。例如

以下的输出应该是 (null,null,abc,null,null)

实际:(0,0,abc,0.0,0)

问题是字段的 isset 信息在转换为元组期间丢失。是故意做的吗?这个问题有什么解决方法吗?

0 投票
0 回答
823 浏览

json - 使用 Pig 展平复杂的嵌套 JSON,并在 | 中输出 分隔文件

我需要采用一些复杂的嵌套 JSON 并将其转换为制表符分隔的输出,其中输入 JSON 中的每个 ts 和 y 对都有一个唯一的输出行。我知道如何以制表符分隔格式输出,但无法以正确的方式展平 JSON。基于以下输入 JSON 和所需输出的任何建议?我正在使用 ElephantBird 加载 JSON。

我有以下输入 JSON:

我可以使用这个猪脚本加载它:

现在我想获得为每个 ts 和 y 对展平的元组,同时保留其他属性的属性。我已经尝试过使用扁平化和从地图中引用 kv 对生成的各种语句序列,但很挣扎。寻找有关如何获得此结果的建议:

0 投票
0 回答
240 浏览

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,使用大象鸟没有问题。任何想法?

0 投票
1 回答
519 浏览

hadoop - 如何在 Pig 中将许多地图的元组拆分为不同的行

我在 Pig 中有一个如下所示的关系:

如您所见,我在一个元组中有三个地图对象。上面的所有数据都在关系中的第 0 美元字段内。因此,上面的数据与单个 bytearray 列有关。

数据加载如下:

如何将此数据结构拆分为三行,以便输出如下?

0 投票
1 回答
92 浏览

apache-pig - ElephantBird UDF:JSON 字段上的 ORDER BY 生成语法错误

我在 Hadoop 1.2.1 上使用 Pig 0.13.0。为了处理 JSON 文件,我还使用了 ElephantBird UDF 版本 4.5。到目前为止,我对 UDF 没有太大问题,但是当我尝试通过 json 字段订购别名时,pig 编译器不是很高兴,我收到以下错误:

脚本如下所示(查看 ORDER 语句):

我尝试删除(长)但无济于事。

0 投票
1 回答
1194 浏览

hadoop - 无法使用大象鸟查询 hive 中的示例 AddressBook protobuf 数据

我正在尝试使用大象鸟来查询一些示例 protobuf 数据。我使用的是AddressBook示例,我将一些假的AddressBooks序列化为文件并将它们放在/user/foo/data/elephant-bird/addressbooks/下的hdfs中查询没有返回结果

我像这样设置表和查询:

当我尝试选择数据时,它没有返回任何结果(似乎没有读取行):

如果我创建一个非外部表或将数据显式导入外部表,我会看到同样的情况。

我的设置的版本信息:

更新:

我在日志中看到了这个错误。我在 HDFS 中的数据只是原始 protobuf(无压缩)。我想弄清楚这是否是问题所在,以及我是否可以读取原始二进制 protobuf。