hiveの——lateral viewとUDTF

857 ワード

UDTFとは何ですか.
  • テーブルはUDFを生成し、1つのデータ行を受信し、複数のデータ行(出力として1つのテーブル)を返す.UDTF関数構文:
  • 1つのUDTFのみを使用した操作が許可されている.eg:select explode(array('A','B','C'));出力:A B C
  • エラー例:eg:select 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文法:LATERAL VIEW udtf(expression) tableAlias AS columnAlias (‘,’ columnAlias)*
  • eg:select col1,newtable.clo2 from table lateral view explode(array('A','B')) newtable as clo2;注記:table-原表col 1-原表のフィールドnewtable-explode()関数が返すテーブルの別名col 2-新表のフィールド名(newtableの列名)