【发布时间】:2017-07-01 05:35:33
【问题描述】:
我有这些命令来显示分区中的文件数。
echo '' > ~/partitions_mkt_296 ; impala-shell -i czmorehr -q "use cz_prd_mkt_op; show tables;" -B | while read a; do impala-shell -q "show partitions cz_prd_mkt_op.${a};" -B -i czmorehr >> ~/partitions_mkt_296.txt; done
问题在于,在生成的文件中 - 我要查找的数字有时位于第 3、第 4 或第 7 个字段中(取决于表的分区数。
我想使用 awk 提取所有可能的列,然后在它们包含“=”、“。”的前提下过滤掉那些我不想要的列。或者 ”-”。 - 并且只显示不包含这些的字段。
这有可能实现吗?
样本输入为:
2017052118 -1 7 197.70MB NOT CACHED NOT CACHED PARQUET false hdfs://MORPHEUS/user/hive/warehouse/cz_prd_mkt_op.db/edw_customers/pr_load_time=2017052118
2017052209 -1 8 198.31MB NOT CACHED NOT CACHED PARQUET false hdfs://MORPHEUS/user/hive/warehouse/cz_prd_mkt_op.db/edw_customers/pr_load_time=2017052209
0 2017062006 -1 4 232.42MB NOT CACHED NOT CACHED PARQUET false hdfs://MORPHEUS/user/hive/warehouse/cz_prd_ntw_op.db/gngi__24_/pr_comp_ver=0/pr_start_time=2017062006
0 2017062007 -1 5 347.36MB NOT CACHED NOT CACHED PARQUET false hdfs://MORPHEUS/user/hive/warehouse/cz_prd_ntw_op.db/gngi__24_/pr_comp_ver=0/
在前两行中,我想提取数字 7,8 以及表名 -edw_customers。在最后两行中,我需要提取数字 4,5 和表名-gngi__24_
【问题讨论】:
-
发布示例输入
-
为什么
2017052118应该被忽略? -
@RomanPerekhrest 它不应该 - 从这一行中,我想在第三个字段中提取 "7" ,然后是 "edw_customers" 。问题是第三和第四行有我对不同领域感兴趣的数字(第 4 行)
标签: sql bash hadoop awk impala