[英]creating a hiveQL query that uses UDF function that can return column names
我想创建一个Hive UDF函数,该函数根据一些值返回特定的列名,例如retreivecol(age)。如果年龄为20,则返回要在选择查询中使用的列名列表,例如'name,email,fbuserid,friend列出“等”,如果年龄小于20岁,则仅返回“姓名”。因此,我希望我的HIVE QL查询看起来像
从User_Data中选择retreivecol(age);
上面的查询只显示列名,例如'name,email,fbuserid,friendslist'等,而不是将它们视为列名并基于该列进行过滤。任何指针都是值得的。
我不确定UDF是执行此操作的正确位置,因为UDF只是看到传递给他们的值,所以他们实际上没有访问整个表结构的权限。
相反,您可以在嵌套表中执行此操作吗?
select name,email,id FROM
(
select
name,
if(age < 20, email, NULL) as email,
if(age < 20, id, NULL) as id
FROM mytable
) a
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.