SQL直接查询出来的不能下载超过10万条
1.查询SQL
2.写成一个文件,在堡垒机上执行
impala-shell -q "
select * from t
" -B --output_delimiter="," --print_header -o /home/user/tmp_data/wj/test.csv
3.将文件上传导hdfs:hadoop fs -put XX123.csv /user/wj
4. 然后到hue的user/目录选中下载
后台运行脚本写日志到文件命令:
nohup sh ./xx_idcard_123.sh > xx_idcard_123.log 2>&1 &
nohup sh ./shell_script.sh > shell_script.log 2>&1 &
字符串内容特殊符号替换 regexp_replace(content, '\\n|\\t|\\r', '')
regexp_replace(content,'([a-z]+|[A-Z]+|[0-9]+)','*')
REPLACE(mobile,SUBSTR(mobile,4,4),'****')
regexp_replace(content,'[0-9]','*')
模糊查询多个字符串 : regexp '优惠|你好|再见'
模糊查询多个字符串 : rlike '.*(优惠|你好|再见).*'
点号表示和任意字符匹配,星号表示重复“左边的字符”零次到无数次
切分大文件命令,在堡垒机中执行:split -b 50M xx20200807.csv
split -b 100M /atmd/data/i0610_2.csv -d -a 4 test111
split -l 700000 /atmd/data/i0610_2.csv -d -a 4 test111
切分加批量改名:
split 文件名 -l 1000 -d -a 3 前缀_ && ls | grep 前缀_ | xargs -n1 -i{} mv {} {}.csv
1split命令:
-l指定行数,每个文件多少行
-b指定大小,每个文件100M.,这种担心会破坏一行的完整性
-d指定用数字递增为生成的文件名编号 test111为前缀
-a指定有几位数字 这里指定了4位,则从0000开始
-- 数据修改文件后缀名
-- find . -name '*.data.0.' | xargs -n1 -i{} mv {} {}.csv
指定字符串的编码集统计其长度:
length(encode(content,'EUC-KR'))