(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;