hive自定义函数说明
Hive函数及语法说明

无线增值产品部Hive函数及语法说明版本:Hive 0.7.0.001eagooqi2011-7-19版本日期修订人描述V1.0 2010-07-20 eagooqi 初稿2012-1-4 Eagooqi ||、cube目录⏹函数说明 (2)⏹内置函数 (2)⏹增加oracle函数 (14)⏹增加业务函数 (17)⏹扩展函数开发规范 (19)⏹语法说明 (21)⏹内置语法 (21)⏹增加语法 (28)⏹扩展语法开发规范(语法转换) (29)⏹ORACLE sql 对应的hSQL语法支持 (29)⏹函数说明参考链接:https:///confluence/display/Hive/LanguageManualCLI下,使用以下命令显示最新系统函数说明SHOW FUNCTIONS;DESCRIBE FUNCTION <function_name>;DESCRIBE FUNCTION EXTENDED <function_name>;⏹内置函数数值函数Mathematical Functions集合函数Collection Functions类型转换函数Type Conversion Functions日期函数Date Functions条件判断函数Conditional Functions字符串函数String Functions其他函数Misc. FunctionsxpathThe following functions are described in [Hive-LanguageManual-XPathUDF]:∙xpath, xpath_short, xpath_int, xpath_long, xpath_float, xpath_double, xpath_number, xpath_stringget_json_objectA limited version of JSONPath is supported:∙$ : Root object∙. : Child operator∙[] : Subscript operator for array∙* : Wildcard for []Syntax not supported that's worth noticing:∙: Zero length string as key∙.. : Recursive descent∙@ : Current object/element∙() : Script expression∙?() : Filter (script) expression.∙[,] : Union operator∙[start:end.step] : array slice operatorExample: src_json table is a single column (json), single row table:json{"store":{"fruit":[{"weight":8,"type":"apple"},{"weight":9,"type":"pear"}], "bicycle":{"price":19.95,"color":"red"}},"email":"amy@only_for_json_udf_","owner":"amy"}The fields of the json object can be extracted using these queries:hive> SELECT get_json_object(src_json.json, '$.owner') FROM src_json; amyhive> SELECT get_json_object(src_json.json, '$.store.fruit[0]') FROM src_json;{"weight":8,"type":"apple"}hive> SELECT get_json_object(src_json.json, '$.non_exist_key') FROM src_json;NULL内置聚合函数Built-in Aggregate Functions (UDAF)增加oracle函数增加业务函数扩展函数开发规范提供以下两种实现方式:a继承org.apache.hadoop.hive.ql.exec.UDF类代码包为:package org.apache.hadoop.hive.ql.udf实现evaluate方法,根据输入参数和返回参数类型,系统自动转换到匹配的方法实现上。
hive函数大全

hive函数大全1.内置运算符1.1关系运算符运算符类型说明A =B 原始类型如果A与B相等,返回TRUE,否则返回FALSEA ==B 无失败,因为无效的语法。
SQL使用”=”,不使用”==”。
A <>B 原始类型如果A不等于B返回TRUE,否则返回FALSE。
如果A或B值为”NULL”,结果返回”NULL”。
A <B 原始类型如果A小于B返回TRUE,否则返回FALSE。
如果A或B值为”NULL”,结果返回”NULL”。
A <=B 原始类型如果A小于等于B返回TRUE,否则返回FALSE。
如果A或B值为”NULL”,结果返回”NULL”。
A >B 原始类型如果A大于B返回TRUE,否则返回FALSE。
如果A或B值为”NULL”,结果返回”NULL”。
A >=B 原始类型如果A大于等于B返回TRUE,否则返回FALSE。
如果A或B值为”NULL”,结果返回”NULL”。
A IS NULL 所有类型如果A值为”NULL”,返回TRUE,否则返回FALSEA IS NOT NULL 所有类型如果A值不为”NULL”,返回TRUE,否则返回FALSEA LIKEB 字符串如果A或B值为”NULL”,结果返回”NULL”。
字符串A与B通过sql 进行匹配,如果相符返回TRUE,不符返回FALSE。
B字符串中的”_”代表任一字符,”%”则代表多个任意字符。
例如:(…foobar‟ like …foo‟)返回FALSE,(…foobar‟ like …foo_ _ _‟或者…foobar‟ like …foo%‟)则返回TUREA RLIKEB 字符串如果A或B值为”NULL”,结果返回”NULL”。
字符串A与B通过java 进行匹配,如果相符返回TRUE,不符返回FALSE。
例如:(…foobar‟rlike …foo‟)返回FALSE,(‟foobar‟rlike …^f.*r$‟)返回TRUE。
hive caldate函数

hive caldate函数Hive是一个基于Hadoop的数据仓库系统,它提供了一个类SQL的接口,使用户可以用常用的SQL语句来操作存储在Hadoop集群中的数据。
Hive中的函数是用来处理数据的重要工具之一,在这里我们将会着重介绍Hive函数中的一个函数——caldate函数。
caldate函数是Hive提供的一个日期函数,它的作用是根据给定的年、月、日参数,返回该日期对应的日期值。
简单来说,就是将给定的年月日转化为Hive中的日期类型。
1. 语法caldate(year, month, day)参数说明:- year:年份,必选参数,整型。
- month:月份,必选参数,整型。
- day:日,必选参数,整型。
返回值类型:- date2. 示例-- 示例1:返回2021年8月23日的日期SELECT caldate(2021, 8, 23);-- 返回结果:2021-08-23需要注意的是,如果给定的年月日不合法,caldate函数会返回NULL。
上面的示例3中,2020年2月29日是一个闰年的特殊情况,因此该示例会返回正确的日期。
caldate函数的使用场景非常广泛,在Hive中,我们常常需要将日期相关的数据进行处理和分析,例如计算某一天的数据量、汇总某段时间内的销售额,等等。
这时我们就需要使用到caldate函数将日期类型转化为标准格式,进而进行统计计算。
下面我们将举一些实际的例子来展示caldate函数的使用场景。
1. 计算一段时间内的销售额SELECT SUM(total_sales)FROM sales_recordWHEREcaldate(year, month, day) BETWEEN '2021-08-01' AND '2021-08-31';在上面的示例中,我们使用了caldate函数将year、month、day转化为了标准的日期类型,然后使用了between关键字来筛选出2021年8月的数据,最后通过SUM函数来计算8月份的总销售额。
在Hive中创建使用自定义函数

在Hive中创建使用自定义函数目录在Hive中创建使用自定义函数 (1)实际情况 (2)网传的四种做法 (2)适宜做法 (3)原理(hive源代码) (4)实际情况Hive提供了不少的函数,但是针对比较复杂的业务,还需要我们手动去定义一些函数来进行一些数据分析处理。
Hive的自定义函数包括UDF、UDAF和UDTF,定义模板请参考/blog/1472371。
网传的四种做法1.在HIVE会话中add 自定义函数的jar文件,然后创建function,继而使用函数;2.在进入HIVE会话之前先自动执行创建function,不用用户手工创建;3.把自定义的函数写到系统函数中,使之成为HIVE的一个默认函数,这样就不需要create temporary function;4.在HIVE_HOME的bin目录下新建一个.hiverc的文件,把写好的注册语句写在里面。
1.在HIVE会话中add 自定义函数的jar文件,然后创建function,继而使用小结:这种方式的弊端是:每次打开新的会话,就要重新执行一遍如上的add jar和create temporary function的命令。
2.在进入HIVE会话之前先自动执行创建functionHIVE命令有个参数-i:在进入会话,待用户输入自己的HQL之前,先执行-i的参数。
我们只需要把add jar和create temporary function的命令写到一个文件中,并把这个文件传到-i的参数,如此一来省去了每次要手工创建的工作。
3.把自定义的函数写到系统函数中,使之成为HIVE的一个默认函数(1)编写自己的UDF/UDAF/UDTF,并把代码放到$HIVE_HOME/src/ql/src/java/org/apache/hadoop/hive/ql/udf路径下(2)修改$HIVE_HOME/src/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegis try.java以HIVE自带函数Trim()举例,自定义函数操作一样。
hive空间函数

Hive空间函数详解Hive是一个基于Hadoop的数据仓库基础设施,它提供了一种类似于SQL的查询语言HiveQL来进行数据查询和分析。
Hive空间函数是HiveQL中的一类特定函数,用于处理和操作空间数据。
本文将详细解释Hive空间函数的定义、用途和工作方式。
1. Hive空间函数的定义Hive空间函数是一类专门用于处理和操作空间数据的函数,它们提供了一系列用于计算和处理空间数据的功能。
Hive空间函数通常基于地理信息系统(Geographic Information System,简称GIS)的原理和算法,用于处理地理空间数据。
Hive空间函数可以用于处理各种类型的空间数据,包括点、线、面等。
它们可以计算空间数据的距离、面积、长度等属性,还可以进行空间数据的转换、裁剪、合并等操作。
2. Hive空间函数的用途Hive空间函数的主要用途是进行地理空间数据的计算和处理。
它们可以在Hive中对空间数据进行分析和查询,帮助用户更好地理解和利用地理空间数据。
以下是Hive空间函数的一些常见用途:2.1 空间数据计算Hive空间函数可以计算空间数据的各种属性,包括距离、面积、长度等。
例如,可以使用ST_Distance()函数计算两个点之间的距离,使用ST_Area()函数计算一个面的面积,使用ST_Length()函数计算一个线的长度等。
2.2 空间数据转换Hive空间函数可以进行空间数据的转换,将一个类型的空间数据转换为另一个类型。
例如,可以使用ST_Point()函数将经纬度坐标转换为点类型的空间数据,使用ST_PolygonFromEnvelope()函数将一个矩形范围转换为面类型的空间数据等。
2.3 空间数据裁剪Hive空间函数可以进行空间数据的裁剪,根据指定的条件对空间数据进行裁剪。
例如,可以使用ST_Intersection()函数计算两个面的交集,使用ST_Union()函数计算多个面的并集等。
hive常用函数

hive常用函数Hive一款建立在Hadoop之上的数据仓库分析软件,它为用户提供了一系列的函数,以满足用户的不同需求。
在这里,我们将重点介绍 Hive 中一些常用的函数,希望能够更好的帮助用户使用和熟悉Hive。
### 1.学函数数学函数是 Hive 中的一类经常被使用的函数,它们分为算术运算类函数、随机数类函数、对数类函数、三角函数类函数、取整函数类函数、科学计数法函数等,下面,我们将分别介绍这几类函数的语法以及用法。
####1)算术运算类函数算术运算类函数主要有如下:1. `ABS(x)`:返回x的绝对值2. `EXP(x)`:返回e的x次方3. `MOD(x, y)`:返回x除以y的余数4. `POWER(x,y)`:返回x的y次方5. `ROUND(x,d)`:返回x保留d位小数后的结果6. `LOG(x)`:返回x的自然对数####2)随机数类函数随机数类函数主要有`RAND()`,它用于生成一个0~1之间的随机数。
####3)对数类函数对数类函数主要有`LOG(x, base)` `LOG10(x)`,它们用于返回X的对数,其中base可以自定义,为空时,使用2作为默认值;而`LOG10(x)`则返回以10为底的x的对数。
####4)三角函数类函数三角函数类函数主要有`SIN(x)`,`COS(x)`,`TAN(x)`,它们分别用于返回x的正弦值、余弦值和正切值。
####5)取整函数类函数取整函数类函数主要有`CEIL(x)` `FLOOR(x)`,它们用于返回比x大的最小整数和比x小的最大整数。
####6)科学计数法函数科学计数法函数主要有`ROUND(x,s)`,其中x为一个数字,s代表保留小数点位数,用于表示数字的指数部分,即参数s代表相对于基数10的指数。
### 2.符串函数字符串函数是 Hive 中常用的一类函数,它们分为字符串处理类函数、字符和数值转换类函数、字符集转换类函数、正则表达式类函数等,下面,我们将分别介绍这几类函数的语法以及用法。
Hive(18)hive自定义函数

Hive(18)hive⾃定义函数hive⾃定义函数1、⾃定义函数的基本介绍Hive ⾃带了⼀些函数,⽐如:max/min等,但是数量有限,⾃⼰可以通过⾃定义UDF来⽅便的扩展。
当Hive提供的内置函数⽆法满⾜你的业务处理需要时,此时就可以考虑使⽤⽤户⾃定义函数(UDF:user-defined function)根据⽤户⾃定义函数类别分为以下三种:UDF(User-Defined-Function)⼀进⼀出UDAF(User-Defined Aggregation Function)聚集函数,多进⼀出,类似于:count/max/minUDTF(User-Defined Table-Generating Functions)⼀进多出,如lateral view explode()如lateral view explode()官⽅⽂档地址编程步骤:(1)继承org.apache.hadoop.hive.ql.UDF(2)需要实现evaluate函数;evaluate函数⽀持重载;注意事项(1)UDF必须要有返回类型,可以返回null,但是返回类型不能为void;(2)UDF中常⽤Text/LongWritable等类型,不推荐使⽤java类型;2、⾃定义函数开发第⼀步:创建maven java ⼯程,并导⼊jar包<repositories><repository><id>cloudera</id><url>https:///artifactory/cloudera-repos/</url></repository></repositories><dependencies><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>2.6.0-mr1-cdh5.14.2</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-common</artifactId><version>2.6.0-cdh5.14.2</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-hdfs</artifactId><version>2.6.0-cdh5.14.2</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-mapreduce-client-core</artifactId><version>2.6.0-cdh5.14.2</version></dependency><dependency><groupId>org.apache.hive</groupId><artifactId>hive-exec</artifactId><version>1.1.0-cdh5.14.2</version></dependency><dependency><groupId>org.apache.hive</groupId><artifactId>hive-jdbc</artifactId><version>1.1.0-cdh5.14.2</version></dependency><dependency><groupId>org.apache.hive</groupId><artifactId>hive-cli</artifactId><version>1.1.0-cdh5.14.2</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.0</version><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding><!-- <verbal>true</verbal>--></configuration></plugin></plugins></build>第⼆步:开发java类继承UDF,并重载evaluate ⽅法package com.kkb.udf.MyUDF;public class MyUDF extends UDF {public Text evaluate(final Text s) {if (null == s) {return null;}//返回⼤写字母return new Text(s.toString().toUpperCase());}}第三步:项⽬打包使⽤maven的package进⾏打包将我们打包好的jar包上传到node03服务器的/kkb/install/hive-1.1.0-cdh5.14.2/lib 这个路径下第四步:添加我们的jar包重命名我们的jar包名称cd /kkb/install/hive-1.1.0-cdh5.14.2/libmv original-day_hive_udf-1.0-SNAPSHOT.jar udf.jarhive的客户端添加我们的jar包0: jdbc:hive2://node03:10000> add jar /kkb/install/hive-1.1.0-cdh5.14.2/lib/udf.jar;第五步:设置函数与我们的⾃定义函数关联0: jdbc:hive2://node03:10000> create temporary function touppercase as 'com.kkb.udf.MyUDF';第六步:使⽤⾃定义函数0: jdbc:hive2://node03:10000>select tolowercase('abc');hive当中如何创建永久函数在hive当中添加临时函数,需要我们每次进⼊hive客户端的时候都需要添加以下,退出hive客户端临时函数就会失效,那么我们也可以创建永久函数来让其不会失效创建永久函数-- 1、指定数据库,将我们的函数创建到指定的数据库下⾯0: jdbc:hive2://node03:10000>use myhive;-- 2、使⽤add jar添加我们的jar包到hive当中来0: jdbc:hive2://node03:10000>add jar /kkb/install/hive-1.1.0-cdh5.14.2/lib/udf.jar;-- 3、查看我们添加的所有的jar包0: jdbc:hive2://node03:10000>list jars;-- 4、创建永久函数,与我们的函数进⾏关联0: jdbc:hive2://node03:10000>create function myuppercase as 'com.kkb.udf.MyUDF';-- 5、查看我们的永久函数0: jdbc:hive2://node03:10000>show functions like 'my*';-- 6、使⽤永久函数0: jdbc:hive2://node03:10000>select myhive.myuppercase('helloworld');-- 7、删除永久函数0: jdbc:hive2://node03:10000>drop function myhive.myuppercase;-- 8、查看函数show functions like 'my*';Json数据解析UDF开发(作业)有原始json数据格式内容如下:{"movie":"1193","rate":"5","timeStamp":"978300760","uid":"1"}{"movie":"661","rate":"3","timeStamp":"978302109","uid":"1"}{"movie":"914","rate":"3","timeStamp":"978301968","uid":"1"}{"movie":"3408","rate":"4","timeStamp":"978300275","uid":"1"}{"movie":"2355","rate":"5","timeStamp":"978824291","uid":"1"}{"movie":"1197","rate":"3","timeStamp":"978302268","uid":"1"} {"movie":"1287","rate":"5","timeStamp":"978302039","uid":"1"}需求:创建hive表,加载数据,使⽤⾃定义函数来解析json格式的数据,最后接的得到如下结果movie rate timestamp uid1193597830076016613978302109191439783019681340849783002751235559788242911119739783022681128759783020391。
hive insert overwrite 动态分区原理-定义说明解析

hive insert overwrite 动态分区原理-概述说明以及解释1.引言概述部分的内容示例:1.1 概述在大数据技术领域,Hive是一种基于Hadoop的数据仓库工具,它提供了一个类似于SQL的查询语言来处理和分析大规模数据集。
而Hive 的动态分区功能是其重要的特性之一。
动态分区(Dynamic Partitioning)是指在将数据插入到Hive表中时,根据数据的某个字段自动生成分区。
相比于静态分区,动态分区更加灵活和方便,不需要提前对分区进行定义,可以根据数据的实际情况进行分区。
而Hive的Insert Overwrite命令是用来向表中插入新的数据的,当与动态分区功能结合使用时,能够实现根据数据自动生成和更新分区的能力。
本文将详细介绍Hive的Insert Overwrite动态分区的原理和工作机制,以帮助读者更好地理解并应用于实际的数据分析和处理任务中。
在接下来的章节中,我们将首先对Hive进行简要介绍,然后详细讲解Insert Overwrite动态分区的概念和原理,并在最后给出结论和应用场景,展望未来动态分区的发展趋势。
通过阅读本文,读者将能够掌握使用Hive的Insert Overwrite命令进行动态分区的方法,并了解其背后的原理和机制。
同时,还将能够运用这一功能解决实际的数据处理问题,并在今后的数据仓库建设和大数据分析中发挥重要的作用。
让我们开始深入探索Insert Overwrite动态分区的奥秘吧!文章结构部分的内容应该包括以下内容:1.2 文章结构本文将按照以下结构来介绍Hive中的Insert Overwrite动态分区原理:1. 引言:介绍本文要讨论的主题,并对文章进行概述,说明文章的结构和目的。
2. 正文:- 2.1 Hive简介:对Hive进行简要介绍,包括其定义、特点和主要应用场景,为后面动态分区的讨论提供背景信息。
- 2.2 Insert Overwrite动态分区概述:对Insert Overwrite动态分区进行基本概述,解释其作用和使用场景,引出后续原理的讨论。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Hive自定义函数说明函数清单:
用法:
getID
通过UUID来生成每一行的唯一ID:
select getid() ;
oracle_concat
hive的concat函数遇到空值的情况下会直接返回空,而在oracle中对于字符串类型空字符串与null是等价对待的
select default.oracle_concat('ff-',null,'','--cc');
Select concat('ff-',null,'','--cc');
getBirthDay
从身份证号码中截取生日信息,返回日期格式为’yyyy-MM-dd’
getGoodsInfo
self_date_format
为格式化来自oracle的时间格式,将格式为’yyyy/MM/dd’和’yyyy/MM/dd HH:mm:ss’的日期格式转换为’yyyy-MM-dd’
Select default. self_date_format(‘2012-12-12’);
Select default. self_date_format(‘20121212’,’yyyyMMdd’);
oracle_months_between
由于当前版本hive不带months_between函数,所以添加
oracle_decode
hive中的decode函数为字符编码函数和encode对应。
Oracle中decode函数类似case when 函数,添加oracle_decode函数减少sql的改写。
与为与oracle功能同步,本函数将null和字符串’’等价对待。
select default.oracle_decode('',null,1,2) r1,
default.oracle_decode(null,'',1,2) r2,
default.oracle_decode('aaa','','Nnull','aaa','is a*3','aaa') r3,
default.oracle_decode('ccc','', 'Nnull','aaa','is a*3','aaa') r4,
default.oracle_decode('','', 'Nnull','aaa','is a*3','aaa') r5;
BinomialTest
_FUNC_(expr1, expr2, p_value, alternativeHypothesis)
alternativeHypothesis:
接受指定值的字符串
取值:TWO_SIDED , GREATER_THAN , LESS_THAN
二项分布检测函数。
实现oracle中的二项分布检测功能。
计算expr1 等于exper2 的值占数据总数的二项分布检测结果,类型依据alternativeHypothesis 确定
days_between_360
实现execl中的day360功能getbirthday
select default. getbirthday(身份证号码);
f_get_interest_effect
f_get_monthpay_bsm
f_get_monthpay_int
f_get_work_days
f_paymentschedule
SELECT
SRC.SERIALNO
,SRC.ACCT_LOAN_NO
,PDATE AS PAYDATE--SRC.PAYDATE ,SRC.PERIODS
,SRC.BUSINESSSUM
,SRC.BIR
,SRC.EIR
,SID--,SRC.SEQID
,PRINCIPAL-- SRC.PAYBUSINESSSUM ,INTEREST -- SRC.PAYINTEREST
,SRC.PAYCUSTOMERSERVICEFEE
,SRC.PAYACCOUNTMANAGEFEE
,SRC.PAYINSURANCEFEE
,SRC.PAYBUGPAYFEE
,TYPE
,CURRENT_DATE AS ETL_IN_DT
,src.CANCELEDDATE
FROM
FINANCE.FIN_ACCT_PAYMENT_SCHEDULE_FIX SRC
LATERAL VIEW
DEFAULT.F_PAYMENTSCHEDULE(SRC.PAYDATE,SRC.BIR/1200,SRC.PERIODS,SRC.BU SINESSSUM)
MYTABLE AS PRINCIPAL, INTEREST, PDATE,SID
WHERE SRC.P_DAY='2017-02-14'limit10
udf_dictionary
字典表: default.dictionary
字段: p_name 分区, key1 string, key2 string, value string
使用:
1.字典表插入数据
2.用udf_dictionary函数从字典表提取数据, 该函数接收3个参数, 第一、第二参数必须为
常量。
三个参数分别对应字典表的p_name,key1,key2。
注意:字典表数据需要扫描和加载至内存,注意大小。
加载至内存数据对应于通过p_name,key1过滤;字典表内数据可以反复使用;存储过程中setp1放置DataHome/DICTIONARY下,包含DICTIONARY时自动依赖
Step 1:
INSERT OVERWRITE TABLE default.dictionary
PARTITION(p_name='s3.CODE_LIBRARY_ITEMNAME')
SELECT
a.codeno
a.ITEMNO,
a.ITEMNAME
FROM s3.CODE_LIBRARY a;
Step 2:
Select DEFAULT.udf_dictionary('s3.CODE_LIBRARY_ITEMNAME ','Occupation',6);
default.ExtractCoordinates
单一参数入参:
select default.ExtractCoordinates('<126.542076,44.82494>');
select default.ExtractCoordinates('<+31.61328064,+120.47313897> +/- 1414.00m (speed -1.00 mps / course -1.00) @ 2017/1/22 中国标准时间19:27:16');
select default.ExtractCoordinates('<+31.61328064,+120.47313897> +/- 1414.00m (speed -1.00 mps / course -1.00) @ 2017/1/22 中国标准时间19:27:16');
双参数入参:
P1: 经度
P2:纬度
select default.ExtractCoordinates('东经120/26/39','北纬40/21/55')
select default.ExtractCoordinates('105.8490712595','31.8176806624')
查询结果使用:
select ll.lng,t from (select
default.ExtractCoordinates('105.8490712595','31.8176806624') as ll) a
default.distanceSimplify
select default.distanceSimplify(纬度1,经度1, 纬度2, 经度2) from table;
default.f_unpivot
实现行转列
select default.f_unpivot('key1','key1,value1,value2', key1,value1,value2) from tmp;
default.f_unpivot(键值名称,所有列名称(必须包含键值名称),所有列)
键值名称和列名称格式为字符串,由逗号分隔
default.f_unpivot2
实现行转列
select default.f_unpivot2('key1,key2','V1,V2,V3', K1,K2,V1,Value1,V2,Value2,V3,Value3) from tmp;。