将输出拆分到配置单元中的多个文件

4sup72z8  于 2021-06-24  发布在  Hive
关注(0)|答案(1)|浏览(418)

我想在每个属性的配置单元中拆分sql结果,并将这些文件传输到sftp。
当前代码执行提取,但是没有这两个要求。在sql结果中,我几乎没有属性。其中一个-用户id-必须作为截止点。一旦识别出新id,就必须创建新文件。
编辑-添加时间戳 beeline -u jdbc:hive2:<MYHOST> -n <USER> -p <PASSWORD> --silent=true --outputformat=csv2 -f <SQL FILE> > result_+%Y%m%d_%H%M%S.csv 目标是将一个文件(直线输出)拆分为多个csv文件 USER_ID 在sftp位置。
直线脚本结果: USER | ATTR1 | ATTR2 ID1 val val ID2 val val ID2 val val 改造后预期效果:
USER | ATTR1 | ATTR2 ID1 val val USER | ATTR1 | ATTR2 ID2 val val ID2 val val

9bfwbjaz

9bfwbjaz1#

感谢@david c。兰金
根据条件将bash中的csv文件拆分为多个文件

awk -v field=a -v n=1 -v dt=$(date '+%Y%m%d%H%M%S')
    'FS=","; 
     FNR == 1 {hdg=$0; next} a != $1 {a = $1; name=a"_file_"dt".csv"; n++;
     print hdg >name} 
     {print $0 > name}' 
     sample_file.csv

相关问题