gpt4 book ai didi

回填 Hive 表的 Bash 命令——运行多个具有更改日期变量的 Hive 命令

转载 作者:可可西里 更新时间:2023-11-01 16:44:03 27 4
gpt4 key购买 nike

试图找出一种方法来回填 ds 分区 Hive 表的分区。

我知道如何从 CLI 运行 Hive 命令,例如

$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' 

但我不确定如何将 date_file 文件中的变量放入 Hive 查询字符串中。

最佳答案

我的建议是使用 shell 命令遍历值:

选项 1:

If you have fixed set of values you want to iterate through then

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:

if you want to iterate through lets say 1 to 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

关于回填 Hive 表的 Bash 命令——运行多个具有更改日期变量的 Hive 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38061215/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com