我有两个 Hive 脚本,如下所示:
脚本 A:
SET hive.exec.dynamic.partition=true; SET hive.exec.dynamic.partition.mode=non-strict; SET hive.exec.parallel=true; ... do something ...
脚本 B:
SET hive.exec.dynamic.partition=true; SET hive.exec.dynamic.partition.mode=non-strict; SET hive.exec.parallel=true; ... do something else ...
我们在每个脚本开头设置的选项都是相同的。是否有可能以某种方式将它们提取到一个公共位置(例如,到一个 commonoptions.sql 中),以便我们的脚本如下所示:
脚本 A:
<run commonoptions.sql> ... do something ...
脚本 B:
<run commonoptions.sql> ... do something else ...
理想情况下,我也想提取表格定义,这样我就有:
脚本 A:
<run commonoptions.sql> <run defineExternalTableXYZ.sql> ... do something with Table XYZ ...
脚本 B:
<run commonoptions.sql> <run defineExternalTableXYZ.sql> ... do something else with Table XYZ ...
这样我就可以在一个地方管理 TableXYZ 定义。我没有使用 Hive CLI。我正在使用带有 Hive 步骤的 Amazon EMR。