保持配置单元会话打开emr

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

我在aws emr上运行一个bash脚本,它执行以下操作:

for i in (‘tab1’ ‘tab2’ ‘tab3’ ‘tab4’)
  do
   nrow=$(hive -e “select count(*) from $i”) 
  done

这需要时间,因为每次计数都必须设置一个新的配置单元会话。有没有办法让会话在整个循环中保持开放?

ou6hu8tu

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

相关问题