bash命令来回填配置单元表,该配置单元表运行多个具有更改日期变量的配置单元命令

rekjcdws  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(370)

正在尝试找出一种方法来回填ds分区配置单元表的分区。
我知道如何从cli运行配置单元命令,例如。

$HIVE_HOME/bin/hive -e 'select a.col from tab1 a'

我想做的是提供一个不同ds的.txt文件,并为每个ds运行一个新的作业,例如。

$HIVE_HOME/bin/hive -e 'INSERT OVERWRITE PARTITION ds = $DS_VARIABLE_HERE 
                            select a.col from tab1 a where ds = $DS_VARIABLE_HERE'

但我不知道该怎么做
我想试试

cat date_file.txt | hive -e 'query here'

但我不确定如何将日期文件中的变量放入配置单元查询字符串中。

p1iqtdky

p1iqtdky1#

我的建议是使用shell命令遍历以下值:
方案1:
如果有一组固定的值需要迭代,那么

DS_VARIABLE_HERE=('val1' 'val2' 'val3')

for ((i=0;i<${#DS_VARIABLE_HERE[@]};i++))
do
$HIVE_HOME/bin/hive -e "INSERT OVERWRITE PARTITION ds = ${DS_VARIABLE_HERE[$i]} select a.col from tab1 a where ds = ${DS_VARIABLE_HERE[$i]}"
done

方案2:
如果你想迭代,让我们假设1到10

for ((i=1;i<=10;i++))
do
$HIVE_HOME/bin/hive -e "INSERT OVERWRITE PARTITION ds = ${i} select a.col from tab1 a where ds = ${i}"
done

相关问题