Hive 如何在配置单元中导出视图数据?

Hive 如何在配置单元中导出视图数据?,hive,hiveql,Hive,Hiveql,我在配置单元中创建了4个表a、b、c、d,并通过连接它们在这些表的顶部创建了一个视图x -如何将x基础csv数据从hdfs导出到本地 -如何将此csv保存在hdfs中 对于表,我们可以显示创建表a 这将显示存储基础csv的hdfs的位置 hadoop fs get-从源路径和文件-到目标路径和文件 类似地,如何将视图中的csv数据输入本地。1要将结果写入文件,您可以使用插入覆盖,如下所示: insert overwrite local directory '/tmp/output' row fo

我在配置单元中创建了4个表a、b、c、d,并通过连接它们在这些表的顶部创建了一个视图x

-如何将x基础csv数据从hdfs导出到本地

-如何将此csv保存在hdfs中

对于表,我们可以显示创建表a

这将显示存储基础csv的hdfs的位置

hadoop fs get-从源路径和文件-到目标路径和文件


类似地,如何将视图中的csv数据输入本地。

1要将结果写入文件,您可以使用插入覆盖,如下所示:

insert overwrite local directory '/tmp/output'
row format delimited
fields terminated by '|'
select * from <view>;
2如果要将文件写入HDFS,请使用上面的insert OVERVERSE语句和local命令

3视图没有单独的HDFS位置

视图是来自表的纯逻辑构造,在HDFS中没有为它们创建单独的底层存储


当您希望存储中间结果并直接查询它们,而不是一次又一次地在该表上编写复杂查询时,将使用视图。这就像我们在查询中使用块一样。

1要将结果写入文件,您可以使用插入覆盖,如下所示:

insert overwrite local directory '/tmp/output'
row format delimited
fields terminated by '|'
select * from <view>;
2如果要将文件写入HDFS,请使用上面的insert OVERVERSE语句和local命令

3视图没有单独的HDFS位置

视图是来自表的纯逻辑构造,在HDFS中没有为它们创建单独的底层存储


当您希望存储中间结果并直接查询它们,而不是一次又一次地在该表上编写复杂查询时,将使用视图。这就像我们在查询中使用块一样。

您可以使用以下方法将视图数据导出到CSV:

insert overwrite local directory '/user/home/dir' row format delimited fields terminated by ',' select * from view;
如果需要单个文件,请使用cat连接本地目录中的文件:


或者,如果数据集很小,您可以在查询中添加ORDERBY,这将触发单减速机并生成单顺序文件。如果数据集很大,则执行速度会很慢。

您可以使用以下方法将视图数据导出到CSV:

insert overwrite local directory '/user/home/dir' row format delimited fields terminated by ',' select * from view;
如果需要单个文件,请使用cat连接本地目录中的文件:

或者,如果数据集很小,您可以在查询中添加ORDERBY,这将触发单减速机并生成单顺序文件。如果数据集很大,则执行速度会很慢