表值函数(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