表值函數(TVF)調用

適用於:檢查標記是的磚的SQL檢查標記是的磚運行時

調用一個函數返回一個關係或一組行作為一個表引用(sql-ref

TVF可以是:

  • SQL用戶定義的表函數。

  • 範圍表值函數。

  • 任何表值函數發生器,等爆炸

    適用於:檢查標記是的磚的SQL檢查標記是的磚運行時12.2及以上。

語法

function_name((表達式(,…]])(table_alias]

參數

  • function_name

    表值函數。

  • 表達式

    結合一個或多個值,操作符和SQL函數,結果在一個值。

  • table_alias

    一個可選的標簽參考函數的結果和其列。

例子

——電話結束>選擇*範圍(6+因為(3));01234——電話範圍的開始和結束>選擇*範圍(5,10);56789——範圍與numPartitions的電話>選擇*範圍(0,10,2,200年);02468——範圍與一個表別名的電話>選擇*範圍(5,8)作為測試;567——創建一個SQL UDTF和調用它>創建取代函數table_func(一個INT)返回返回選擇一個*c1作為res(1),(2),(3),(4)作為T(c1)>選擇*table_func(5);5101520.——使用橫向相關性>選擇table_funcres(10),(20.)作為年代(c1),橫向table_func(c1);1020.20.4030.604080年——標量因數是不允許在FROM子句中>選擇*修剪(“你好”);錯誤

在SQL amd磚磚運行時12.2及以上:

>選擇*爆炸(數組(10,20.));1020.>選擇*內聯(數組(結構體(1,“一個”),結構體(2,“b”)));col1col2- - - - - - - - - -1一個2b>選擇*posexplode(數組(10,20.));pos上校推薦- - - - - - - - - - - -010120.>選擇*堆棧(2,1,2,3);col0col1- - - - - - - - - -123>選擇*json_tuple(”{“a”: 1、“b”: 2}”,“一個”,“b”);c0c1推薦- - - - - - - - - - - -12>選擇*parse_url(“http://spark.apache.org/path?query=1”,“主機”);火花apacheorg>選擇*(1),(2)作為t1(c1),橫向爆炸(數組(3,4))作為t2(c2);c1c2- - - - -13142324