繁体   English   中英

创建使用UDF函数的hiveQL查询,该函数可以返回列名

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM