hive表导出数据为txt或者xml文件

导出数据到本地

一、导出为txt

  1. 通过重定向方式,将查询结果写到指定的文件中
hive -e "SELECT * from 表 where dt='';" > cust.txt
  1. 使用INSERT OVERWRITE LOCAL DIRECTORY保存结果到本地
hive -e "
INSERT OVERWRITE LOCAL DIRECTORY '/home/data/cust.txt' 
ROW format delimited fields terminated BY '\t' 
SELECT * from 表 where dt='';
"
  1. 使用Hadoop命令保存结果到本地
hdfs dfs -get /user/hive/warehouse
在Java中,我们可以使用Hive JDBC驱动和一些Apache Commons IO库来从Hive导出数据到CSV文件。以下是简单的步骤: 1. 首先,确保你的项目包含了Hive JDBC驱动(如`org.apache.hive.jdbc.HiveDriver`)。如果你使用Maven,可以在pom.xml添加依赖: ```xml <dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-jdbc</artifactId> <version>版本号</version> </dependency> ``` 2. 创建一个Java类并设置连接Hive的代码: ```java import java.io.*; import java.sql.*; public class HiveToCSV { public static void main(String[] args) { String url = "jdbc:hive2://your_host:port/default"; String username = "your_username"; String password = "your_password"; try (Connection conn = DriverManager.getConnection(url, username, password); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM your_table")) { // 检查是否有结果集 if (rs.next()) { String outputFilePath = "path/to/your/local/file.csv"; BufferedWriter writer = new BufferedWriter(new FileWriter(outputFilePath)); while (rs.next()) { for (int i = 1; i <= rs.getMetaData().getColumnCount(); i++) { writer.write(rs.getString(i)); writer.write(","); } writer.newLine(); } writer.close(); System.out.println("Data exported to CSV successfully."); } else { System.out.println("No data found in the table."); } } catch (SQLException | IOException e) { e.printStackTrace(); } } } ``` 在这个例子中,你需要替换URL、用户名、密码以及table名称为你实际的配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值