hive导出查询文件到本地文件的2种办法

本文介绍了两种使用Hive导出数据的方法:一种是通过INSERT OVERWRITE LOCAL DIRECTORY语句将数据输出到本地指定目录,生成的文件数量与Reducer数量相同;另一种是直接执行查询并将结果重定向到文件。

通过HQL语句

可以将hive  中表的数据生成到指定的目录。

有时候 我们可以利用hive来生成统计的中间文件(比源文件小的多的)

方法有如下2种:

 

1.INSERT OVERWRITE LOCAL DIRECTORY

将结果输出到指定的目录:

生成的文件数 和redurcer的数目的一样的

在hive下面执行

INSERT OVERWRITE LOCAL DIRECTORY '/hive_dat/package_name'
select package_name,count(1) from app_list group by package_name;

 

2.直接查询生成结果文件:

在linux下面执行:(也支持后台运行 如果执行时间比较长的话)

hive -S -e"select package_name,count(1) from app_list group by package_name;"> grp_app_id.dat
这个只生成一个文件 并且输出的文件里面的列 是以空格隔开的。

 

### 如何在 Hive 中将表的数据导出本地文件Hive 中,可以使用 `INSERT` 语句结合 `LOCAL DIRECTORY` 将查询结果保存到本地文件系统中。以下是具体方法: #### 使用 `INSERT OVERWRITE LOCAL DIRECTORY` 可以通过以下命令将 Hive 表中的数据导出本地目录: ```sql INSERT OVERWRITE LOCAL DIRECTORY '/local/path/to/directory' ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' STORED AS TEXTFILE SELECT * FROM your_table_name; ``` 上述 SQL 命令的作用如下: - `/local/path/to/directory`: 指定要存储数据的本地路径。 - `ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'`: 定义字段分隔符和行结束符[^1]。 - `STORED AS TEXTFILE`: 明确指定输出文件格式为纯文本。 如果只需要部分列,则可以在 `SELECT` 子句中调整所需的列名列表。 #### 导出特定条件下的数据 当需要基于某些过滤条件来导出数据时,可以直接在 `SELECT` 查询中加入 `WHERE` 条件。例如: ```sql INSERT OVERWRITE LOCAL DIRECTORY '/local/path/to/filtered_data' ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' SELECT column1, column2 FROM your_table_name WHERE year = '2018'; ``` 此操作会仅导出满足 `year = '2018'` 的记录,并将其写入本地文件夹 `/local/path/to/filtered_data` 下[^2]。 #### 注意事项 - 如果目标路径已存在相同名称的文件或目录,在执行该命令前应确认是否允许覆盖这些资源。 - 数据量较大时可能耗时较长,请耐心等待完成。 ```bash hdfs dfs -get /hive/data/location /desired/local/folder/ ``` 通过 HDFS CLI 工具也可以实现从分布式文件系统下载至本机硬盘的操作[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值