保持 Hive 会话打开 EMR
Keep Hive session open EMR
我是 运行 AWS EMR 上的一个 bash 脚本,它执行如下操作:
for i in (‘tab1’ ‘tab2’ ‘tab3’ ‘tab4’)
do
nrow=$(hive -e “select count(*) from $i”)
done
这需要时间,因为每次计数都必须设置一个新的配置单元会话。
有没有办法让会话在整个循环中保持打开状态?
在一条语句中完成所有计数。您还可以生成 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
我是 运行 AWS EMR 上的一个 bash 脚本,它执行如下操作:
for i in (‘tab1’ ‘tab2’ ‘tab3’ ‘tab4’)
do
nrow=$(hive -e “select count(*) from $i”)
done
这需要时间,因为每次计数都必须设置一个新的配置单元会话。 有没有办法让会话在整个循环中保持打开状态?
在一条语句中完成所有计数。您还可以生成 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