Hive视图没有路径?

时间:2018-04-06 09:28:06

标签: sql hadoop view hive

我已尝试make a Hive view,因此我们可以在我们需要的列上开始sqooping。

用于创建视图的语句:

CREATE VIEW new_view (col1, col2, col3)
AS SELECT col1, col2, col3 FROM source_table;

但是视图在我们的Hadoop集群中没有感知位置。如果我们运行SELECT * FROM new_view;,我们会得到数据,这有多奇怪。

但是当我们尝试运行Oozie作业以挂钩到视图时,我们得到一个表未找到错误。该表也不在文件浏览器中。

2 个答案:

答案 0 :(得分:1)

请注意,视图是纯逻辑对象,没有关联的存储空间。

当查询引用视图时,将评估视图的定义,以便生成一组行以供查询进一步处理。

您可以考虑阅读: - https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-Create/Drop/AlterView

因此,您可能会考虑将视图数据存储在表中,以便从oozie访问它。

答案 1 :(得分:1)

您收到此错误的原因是您的视图没有任何HDFS位置。 Sqoop导出会查找export-dir,但由于您的视图中没有包含任何位置,因此您收到此错误。

视图只是Hive表顶部的一个抽象层(重定向到与之关联的HDFS位置)。请查看以下视图定义:

  

使用VIEW语句可以创建更多的速记缩写   复杂的查询。基本查询可能涉及连接,表达式,   重新排序的列,列别名以及可以进行的其他SQL功能   一个难以理解或维护的查询。这纯粹是合乎逻辑的   构造(查询的别名),后面没有物理数据。

您可能必须使用source_table sqoop-export