1

retreivecol(age) などの値に基づいて特定の列名を返す Hive UDF 関数を作成したいと考えています。年齢が 20 の場合は、選択クエリで使用される列名のリストを返します。 list ' などで、年齢が 20 歳未満の場合は 'name' だけを返します。したがって、HIVE QL クエリを次のようにしたい

User_Data から retreivecol(age) を選択します。

上記のクエリは、列名として扱い、それに基づいてフィルタリングするのではなく、「name,email,fbuserid,friendslist」などの列の名前を出力するだけです。

4

1 に答える 1

0

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
于 2012-09-20T16:26:06.957 に答える