使用impala-shell导入导出数据

(tip:将select * from sq_dim_city,替换为需要导出的查询sql即可,分割符号可以自选)


参数说明:
  • -q query (--query=query) 从命令行执行查询,不进入impala-shell
  • -d default_db (--database=default_db) 指定数据库
  • -B(--delimited)去格式化输出
  • --output_delimiter=character 指定分隔符
  • --print_header 打印列名
  • -f query_file(--query_file=query_file)执行查询文件,以分号分隔
  • -o filename (--output_file filename) 结果输出到指定文件1、导出

1.1 导出结果到csv
impala-shell -q "select id,price,name,dtime from config.price_test limit 3" -B --output_delimiter="," --print_header -o /var/testimpalaout.csv

1.2 导出结果到excle
impala-shell -q "select id,price,name,dtime from config.price_test limit 3" -B --output_delimiter="\t" --print_header -o /var/testimpalaout.xlsx
 

2、导入
2.1 hadoop创建文件夹
hadoop fs -mkdir /tmp/dim_city

2.2 本地文件上传hadoop
hadoop fs -put /var/testimpalaout.csv /tmp/dim_city

2.3 创建临时表(无分区,普通文本表)
impala-shell ,进入impala-shell数据库,(分隔符,自定义)

CREATE TABLE config.dim_city_ls (                                         
  p_code  VARCHAR(200),                                                               
  p_name  VARCHAR(200),                                                         
  c_code  VARCHAR(200),                                                    
  c_name VARCHAR(200)                                                       

row format delimited fields terminated by ','
location '/tmp/dim_city';

2.4 导入分区表
INSERT INTO config.dim_city PARTITION(DAY = 20170701, MINUTE = cast('0000' as char(4)) ) 
SELECT 
  p_code,
  p_name,
  c_code,
  c_name
FROM
  config.dim_city_ls

2.5 删除临时表
drop table config.dim_city_ls;

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值