View 在Impala中创建参数化视图
我的目标是在Impala中创建一个参数化视图,以便用户可以轻松地更改查询中的值。若我在下面运行查询,例如,在色调中,可能会引入一个值View 在Impala中创建参数化视图,view,hive,cloudera,impala,hue,View,Hive,Cloudera,Impala,Hue,我的目标是在Impala中创建一个参数化视图,以便用户可以轻松地更改查询中的值。若我在下面运行查询,例如,在色调中,可能会引入一个值 SELECT*FROM customer\u id=${id} 但我想创建一个视图,如下所示,当您运行它时,它会询问您要搜索的值。但这种方式行不通: CREATE VIEW test AS SELECT*FROM customer,其中customer_id=${id} 有人知道这是否可能吗 非常感谢您可以做相反的事情,例如,将视图上的查询参数化当您创建视图时,它
SELECT*FROM customer\u id=${id}
但我想创建一个视图,如下所示,当您运行它时,它会询问您要搜索的值。但这种方式行不通:
CREATE VIEW test AS SELECT*FROM customer,其中customer_id=${id}
有人知道这是否可能吗
非常感谢您可以做相反的事情,例如,将视图上的查询参数化当您创建视图时,它将获取实际变量的值 存在两种解决办法:
在customer\u id=id\u tableid上从customers JOIN id\u table选择*创建视图测试
在用户定义函数(UDF)的帮助下,将参数传递到视图中。可能您需要设置并获取两个UDF。Set-UDF将在HDFS上写入UDF,Get-UDF将从HDFS读取变量李>
上面提到的两种变通方法都有效,但并不理想。我的建议是使用配置单元创建参数化视图。您可以创建一个GenericUDF,通过它可以访问配置单元配置、读取变量并执行过滤。你不能用它来对付黑斑羚
SELECT Generic_UDF(array(customer_id)) FROM customers
GenericUDFs具有方法配置,您可以使用它读取配置单元变量:
public void configure(MapredContext mapredContext) {
String name = mapredContext.getJobConf().get("name");
}