我正在尝试将参数传递给我的 Hive 查询,如下所示:
hive --hivevar prev_year_sixmnth_date='2023-01-01' -e 'select ${hivevar:prev_year_sixmnth_date} as prev_year_sixmnth_date'
我得到的结果如下:
+-------------------------+
| prev_year_sixmnth_date |
+-------------------------+
| 2021 |
+-------------------------+
我认为 hive 正在对字符串 2023-01-01 执行一些减法运算,并将结果返回为 2021。如何获取作为参数传递的实际字符串?
我尝试过对选择查询中的参数使用强制转换为字符串、to_date 操作,但似乎没有任何效果!
Hive 将值“2023-01-01”解释为日期,而不是字符串
为了防止该值作为字符串,您可以在使用
--hivevar
选项将参数传递到 Hive 时在参数周围添加引号。
hive --hivevar prev_year_sixmnth_date="'2023-01-01'" -e 'select ${hivevar:prev_year_sixmnth_date} as prev_year_sixmnth_date'
看起来是这样的
+-------------------------+
| prev_year_sixmnth_date |
+-------------------------+
| 2023-01-01 |
+-------------------------+