对 Hive 中存储的数据运行 Pig 查询
我想知道如何运行以 Hive 格式存储的 Pig 查询。我已将 Hive 配置为存储压缩数据(使用本教程 http://wiki.apache.org/ hadoop/Hive/压缩存储)。
在此之前,我曾经只使用带有 Hive 分隔符 (^A) 的普通 Pig 加载函数。但现在 Hive 将数据存储在压缩的序列文件中。使用哪个加载函数?
请注意,不需要像这里提到的那样紧密集成:Using Hive with Pig,只需加载即可函数用于读取 Hive 生成的压缩序列文件。
感谢所有的答案。
I would like to know how to run Pig queries stored in Hive format. I have configured Hive to store compressed data (using this tutorial http://wiki.apache.org/hadoop/Hive/CompressedStorage).
Before that I used to just use normal Pig load function with Hive's delimiter (^A). But now Hive stores data in sequence files with compression. Which load function to use?
Note that don't need close integration like mentioned here: Using Hive with Pig, just what load function to use to read compressed sequence files generated by Hive.
Thanks for all the answers.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是我发现的:
如果您将数据存储为 RCFile,则使用 HiveColumnarLoader 很有意义。要使用此加载表,您需要首先注册一些 jar:
要从序列文件加载数据,您必须使用 PiggyBank(如前面的示例所示)。 Piggybank 的 SequenceFile 加载器应该处理压缩文件:
这不适用于 Pig 0.7,因为它无法读取 BytesWritable 类型并将其转换为 Pig 类型,并且您会得到此异常:
此处描述了如何编译 Piggybank:无法建立存钱罐-> /home/build/ivy/lib 不存在
Here's what I found out:
Using HiveColumnarLoader makes sense if you store data as a RCFile. To load table using this you need to register some jars first:
To load data from Sequence file you have to use PiggyBank (as in previous example). SequenceFile loader from Piggybank should handle compressed files:
This doesn't work with Pig 0.7 because it's unable to read BytesWritable type and cast it to Pig type and you get this exception:
How to compile piggybank is described here: Unable to build piggybank -> /home/build/ivy/lib does not exist