我在aws emr上运行一个bash脚本,它执行以下操作:
for i in (‘tab1’ ‘tab2’ ‘tab3’ ‘tab4’) do nrow=$(hive -e “select count(*) from $i”) done
这需要时间,因为每次计数都必须设置一个新的配置单元会话。有没有办法让会话在整个循环中保持开放?
ou6hu8tu1#
在一个语句中完成所有计数。您还可以生成sql语句,而不是硬编码。像这样:
output=$(hive -S -e "select 'tab1', count(*) from tab1 union all select 'tab2', count(*) from tab2 union all select 'tab3', count(*) from tab3") echo "$output" | while read TABLE_NAME COUNT do echo "$TABLE_NAME $COUNT" done
1条答案
按热度按时间ou6hu8tu1#
在一个语句中完成所有计数。您还可以生成sql语句,而不是硬编码。
像这样: