csv - 如何在 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 数据从视图中获取到我的本地。
解决方案
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
在查询中使用的一样。
推荐阅读
- java - 多个 Java 类可以包含 SaaS 的 GroupAccount 对象吗?
- android - 剪辑视图的android点击事件
- java - 如何解决 LI_LAZY_INIT_UPDATE_STATIC?
- python - 在 Jupyter 上编码时在哪里上传 csv 然后读取它
- javascript - 如何使用 ReactJS 从 Firebase 数据库中编辑已保存的帖子
- angular - Angular 7 - 在应用程序的基本 url 和角度脚本之间删除斜线
- python - 如何在线程之后继续代码?对这段代码的流程感到困惑
- google-apps-script - 自动区分大小写查找和替换
- javascript - 有没有办法用相同的“更新功能”下推整个功能?
- node.js - 如何在 WSL 中切换 Node 项目?