运行 脚本中的脚本? - Hive(和其他 QL)
Run a script within a script? - Hive (and other QL's)
是否可以在 运行 脚本的其余部分之前调用脚本并 运行 它?
我的目标是执行一个设置脚本,该脚本将下载和组织执行我的主要查询所需的数据。
我正在寻找类似的东西:
create table logcontent (content string) row format delimited fields terminated by '\n';
**call secondary hive script with date-range arguments and download necessary logs into <logcontent>**
**perform the rest of the query**
我想这样做是为了为 table 设置创建一个很好的抽象,这样最终用户就不必担心 table 设置,它将是为他们完成。
我知道 AWS 可以选择将 Hive 脚本添加为作业中的一个步骤,但我如何在本地执行相同的操作?这可能吗?如果是这样,语法是什么?如果没有,有哪些解决方法?
您可以尝试这样的操作:
create table logcontent (content string) row format delimited fields terminated by '\n';
&& sh /path/to/script.sh
&& **perform the rest of the query**
&&
符号是在前一个命令成功执行后执行后续命令。
答案是在类似于下面的模板中组织您的主要 shell 脚本。
## Content of main.sh
## Code block to setup Hadoop Environment and config in Path, if not already exist.
## Step 1> Create the hive table in non-interactive mode.
hive -e "create table test(id int, name string) row format delimited fields terminated by '\n'"
# Check if the command is successful. IF else logic can be added.
echo $?
## Step 2> Call the secondary script executable to download logs
ksh downloadlogs.sh # Assuming the download script could be invoked this way.
## Step 3> Execute rest of the hive queries to organize data
hive -e "select * from test"
是否可以在 运行 脚本的其余部分之前调用脚本并 运行 它?
我的目标是执行一个设置脚本,该脚本将下载和组织执行我的主要查询所需的数据。
我正在寻找类似的东西:
create table logcontent (content string) row format delimited fields terminated by '\n';
**call secondary hive script with date-range arguments and download necessary logs into <logcontent>**
**perform the rest of the query**
我想这样做是为了为 table 设置创建一个很好的抽象,这样最终用户就不必担心 table 设置,它将是为他们完成。
我知道 AWS 可以选择将 Hive 脚本添加为作业中的一个步骤,但我如何在本地执行相同的操作?这可能吗?如果是这样,语法是什么?如果没有,有哪些解决方法?
您可以尝试这样的操作:
create table logcontent (content string) row format delimited fields terminated by '\n';
&& sh /path/to/script.sh
&& **perform the rest of the query**
&&
符号是在前一个命令成功执行后执行后续命令。
答案是在类似于下面的模板中组织您的主要 shell 脚本。
## Content of main.sh
## Code block to setup Hadoop Environment and config in Path, if not already exist.
## Step 1> Create the hive table in non-interactive mode.
hive -e "create table test(id int, name string) row format delimited fields terminated by '\n'"
# Check if the command is successful. IF else logic can be added.
echo $?
## Step 2> Call the secondary script executable to download logs
ksh downloadlogs.sh # Assuming the download script could be invoked this way.
## Step 3> Execute rest of the hive queries to organize data
hive -e "select * from test"