使用参数在 Hive 中创建视图

min*_*s23 5 hadoop hive hiveql

我有一个表,其中包含属于各个日期的行。我想创建一个视图,它应该根据日期为我提供数据

CREATE VIEW newusers
AS
SELECT DISTINCT T1.uuid
FROM user_visit T1
WHERE T1.firstSeen="20140522";
Run Code Online (Sandbox Code Playgroud)

我不想修复 WHERE T1.firstSeen="20140522"; 它可以是任何日期,例如 20140525 等。有什么方法可以创建以日期作为参数的视图吗?

Joe*_*e K 0

在 hive 脚本中,只需将日期替换为变量即可:

CREATE VIEW newusers
AS
SELECT DISTINCT T1.uuid
FROM user_visit T1
WHERE T1.firstSeen="${hiveconf:date}";
Run Code Online (Sandbox Code Playgroud)

然后在调用 hive 时为该变量赋值:

hive --hiveconf date=20140522 -f 'create_newusers_view.hql'
Run Code Online (Sandbox Code Playgroud)

或者只是从配置单元内设置它:

set date=20140522;
Run Code Online (Sandbox Code Playgroud)