访问在Pig中使用HcatLoader在Hive中创建的视图

问题描述 投票:1回答:3

我只是在Pig中的Hive和HcatLoader中尝试某些东西。我所做的是,在Hive中创建一个视图,然后尝试使用HcatLoader将我创建的视图中的视图加载到数据中。但是似乎没有用。我只是想确认有什么办法可以做到这一点?尝试使用HcatLoader在Pig中加载视图时出现以下错误

events =使用org.apache.hcatalog.pig.HCatLoader();加载“ ViewName”;转储事件;

[当我使用任何tableName代替Hive中的View时,它似乎起作用。此外,它不会给出metastore错误。正如它说的那样,转储时已成功在load语句中连接到metastore,它因以下错误而崩溃。

任何指针都将有所帮助。

谢谢,Atul

org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1066: Unable to open iterator for alias events
at org.apache.pig.PigServer.openIterator(PigServer.java:857)
at org.apache.pig.tools.grunt.GruntParser.processDump(GruntParser.java:682)
at org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:303)
at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:189)
at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:165)
at org.apache.pig.tools.grunt.Grunt.exec(Grunt.java:84)
at org.apache.pig.Main.run(Main.java:555)
at org.apache.pig.Main.main(Main.java:111)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
Caused by: org.apache.pig.PigException: ERROR 1002: Unable to store alias events
at org.apache.pig.PigServer.storeEx(PigServer.java:956)
at org.apache.pig.PigServer.store(PigServer.java:919)
at org.apache.pig.PigServer.openIterator(PigServer.java:832)
... 12 more
Caused by: org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobCreationException: ERROR 2017: Internal error creating job configuration.
at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.getJob(JobControlCompiler.java:731)
at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler.compile(JobControlCompiler.java:259)
at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MapReduceLauncher.launchPig(MapReduceLauncher.java:180)
at org.apache.pig.PigServer.launchPlan(PigServer.java:1270)
at org.apache.pig.PigServer.executeCompiledLogicalPlan(PigServer.java:1255)
at org.apache.pig.PigServer.storeEx(PigServer.java:952)
hive apache-pig hcatalog
3个回答
3
投票

我通过在其他论坛上发布而收到的回复。

HCatLoader不支持在Hive中读取视图]。问题在于,将视图定义为对表(从t中选择x,y创建视图V)上的查询。

猪不讲SQL,

HCat不包含Hive的执行引擎

因此它也无法执行查询。从Pig和MR读取Hive的观点将需要比我们目前拥有的产品更加紧密的集成。”

我今天很难找到同样的问题。 Hive无法读取Hive视图(但是缺少有关此主题的良好异常处理代码)。对于记录(其他人陷入此问题),这是当前版本的行为:在带有Pig 1.15的Hortonworks 2.3上,我在日志中仅收到以下错误:

错误org.apache.pig.tools.grunt.Grunt-错误2017:内部错误创建作业配置。

Pig失败,因为没有文件要加载(因为我们试图从View加载)。

由于Pig从Hadoop的文件中加载数据,所以从视图(没有物理文件)读取数据可能不起作用。也许是因为我们可以设法在hadoop中为视图创建文件,那么Pig也许可以加载它。将虚拟指针文件转换为实际数据文件。不知道这是否可能或已经考虑过。


1
投票

我今天很难找到同样的问题。 Hive无法读取Hive视图(但是缺少有关此主题的良好异常处理代码)。对于记录(其他人陷入此问题),这是当前版本的行为:在带有Pig 1.15的Hortonworks 2.3上,我在日志中仅收到以下错误:


-1
投票

由于Pig从Hadoop的文件中加载数据,所以从视图(没有物理文件)读取数据可能不起作用。也许是因为我们可以设法在hadoop中为视图创建文件,那么Pig也许可以加载它。将虚拟指针文件转换为实际数据文件。不知道这是否可能或已经考虑过。

© www.soinside.com 2019 - 2024. All rights reserved.