首页 > 解决方案 > 如何在 hive 中导出视图数据?

问题描述

我在 hive 中创建了 4 个表(a、b、c、d),并通过加入它们在这些表的顶部创建了一个视图(x)。

- 我如何将 x 底层 csv 数据从 hdfs 导出到本地?

-- 我怎样才能把这个 csv 保存在 hdfs 中

对于表,我们可以做show create table a

这将显示存储底层 csv 的 hdfs 的位置。

hadoop fs get --from source_path_and_file --to dest_path_and_file

同样,我如何将 csv 数据从视图中获取到我的本地。

标签: csvhivehiveql

解决方案


1)将您的结果写入文件,您可以使用INSERT OVERWRITE如下:

insert overwrite local directory '/tmp/output'
row format delimited
fields terminated by '|'
select * from <view>;

2) 如果要将文件写入 HDFS,请使用上述insert overwrite语句local

3) 视图没有单独的 HDFS 位置。

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

当您想要存储中间结果并直接查询它们而不是一次又一次地在该表上编写复杂的查询时,正在使用视图。就像我们with blocks在查询中使用的一样。


推荐阅读