hiveの——lateral viewとUDTF
857 ワード
UDTFとは何ですか.テーブルはUDFを生成し、1つのデータ行を受信し、複数のデータ行(出力として1つのテーブル)を返す.UDTF関数構文: 1つのUDTFのみを使用した操作が許可されている.eg: エラー例:eg:
一般的にlateral viewはUDTF関数とともに使用されますlateral view文法: eg:
select explode(array('A','B','C'));
出力:A B Cselect col1, explode(array('a','b','c'));
eg:select explode(array('a','b','c')),explode(array('A','B','C'));
理由:UDTF関数の入力はテーブル構造であり、単一フィールドでテーブルと接続できない;2枚の表を直接つなぎ合わせることもできません.一般的にlateral viewはUDTF関数とともに使用されます
LATERAL VIEW udtf(expression) tableAlias AS columnAlias (‘,’ columnAlias)*
select col1,newtable.clo2 from table lateral view explode(array('A','B')) newtable as clo2;
注記:table-原表col 1-原表のフィールドnewtable-explode()関数が返すテーブルの別名col 2-新表のフィールド名(newtableの列名)