精华内容
参与话题
问答
  • lateral view

    2019-10-04 21:47:16
    lateral view用于和split, explode等UDTF一起使用,它能够将一列数据拆成多行数据,在此基础上可以对拆分后的数据进行聚合。 一个简单的例子,假设我们有一张表pageAds,它有两列数据,第一列是pa...

    原文地址:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+LateralView#

    lateral view用于和split, explode等UDTF一起使用,它能够将一列数据拆成多行数据,在此基础上可以对拆分后的数据进行聚合。

    一个简单的例子,假设我们有一张表pageAds,它有两列数据,第一列是pageid string,第二列是adid_list,即用逗号分隔的广告ID集合:

     

    string pageid Array<int> adid_list
    "front_page" [1, 2, 3]
    "contact_page" [3, 4, 5]

     

    要统计所有广告ID在所有页面中出现的次数。

    首先分拆广告ID:

     

    SELECT pageid, adid 
    	FROM pageAds LATERAL VIEW explode(adid_list) adTable AS adid;

     

    执行结果如下:

     

    string pageid int adid
    "front_page" 1
    "front_page" 2
    "front_page" 3
    "contact_page" 3
    "contact_page" 4
    "contact_page" 5

     

    接下来就是一个聚合的统计:

     

    SELECT adid, count(1) 
    	FROM pageAds LATERAL VIEW explode(adid_list) adTable AS adid
    GROUP BY adid;
    
    执行结果如下:
    int adid count(1)
    1 1
    2 1
    3 2
    4 1
    5 1
    多个lateral view语句:
    一个FROM语句后可以跟多个lateral view语句,后面的lateral view语句能够引用它前面的所有表和列名。
    以下面的表为例:
    Array<int> col1 Array<string> col2
    [1, 2] [a", "b", "c"]
    [3, 4] [d", "e", "f"]
    SELECT myCol1, col2 FROM baseTable
    	LATERAL VIEW explode(col1) myTable1 AS myCol1;
    的执行结果为:
    int mycol1 Array<string> col2
    1 [a", "b", "c"]
    2 [a", "b", "c"]
    3 [d", "e", "f"]
    4 [d", "e", "f"]

    加上一个lateral view:
    SELECT myCol1, myCol2 FROM baseTable
    	LATERAL VIEW explode(col1) myTable1 AS myCol1
    	LATERAL VIEW explode(col2) myTable2 AS myCol2;

    它的执行结果为:
    int myCol1 string myCol2
    1 "a"
    1 "b"
    1 "c"
    2 "a"
    2 "b"
    2 "c"
    3 "d"
    3 "e"
    3 "f"
    4 "d"
    4 "e"
    4 "f"

    注意上面语句中,两个lateral view按照出现的次序被执行。

    转载于:https://www.cnblogs.com/rocky-AGE-24/p/7458094.html

    展开全文
  • Lateral View

    千次阅读 2017-03-13 22:53:41
    lateralView: LATERAL VIEW udtf(expression) table AS columns(',', columns)* fromClause: FROM baseTable (lateralView)* 描述: Lateral view 通常和split, explode等udtf一起封装使用,它能够将一行数据...

    语法定义:

    lateralView: LATERAL VIEW udtf(expression) table AS columns(',', columns)*

    fromClause: FROM baseTable (lateralView)*

    描述:

    Lateral view 通常和split, explode等udtf一起封装使用,它能够将一行数据拆分成多行数据,在此基础上可以对拆分后的数据进行聚合。lateral view 首先为原始表的每行调用udtf, udtf会把一行拆分成一行或者多行,lateral vew再把结果聚合,产生一个支持别名表的虚拟表。

    例如:

    select pageid, adid from pageAds lateral view explode(adid_list) adTable as adid;

    select adid, count(1) from pageAds lateral view explode(adid_list) adTable as adid group by adid;


    多个lateral view 语句

    描述:一个from语句后可以跟多个lateral view 语句,后面的lateral view 语句能够引用它前面的所有表和列名

    select myCol1, col2 from baseTable lateral view explode(col1) myTable1 as myCol1;

    加上一个table view

    select myCol1, myCol2 from baseTable laberal view explode(col1) myTable1 as myCol1 laberal view explode(col2) myTable2 as myCol2;



    展开全文
  • LATERAL subquery docs

    2020-12-09 04:00:47
    <ul><li>Added a section on <code>LATERAL</code> subqueries to the "Subqueries" documentation page.</li><li>Added a section on <code>LATERAL</code> subqueries to the "Join Expressions" ...
  • Document LATERAL join

    2020-12-06 21:53:18
    <div><p>Document LATERAL join</p><p>该提问来源于开源项目:prestosql/presto</p></div>
  • Lateral View 语法

    2019-09-24 23:00:56
    Lateral View 语法 1 lateralView: LATERAL VIEW udtf(expression) tableAlias AS columnAlias (',' columnAlias)* 2 fromClause: FROM baseTable (lateralView)* Lateral View 描述 Lateral View 用于UDTF...

    Lateral View 语法

    1 lateralView: LATERAL VIEW udtf(expression) tableAlias AS columnAlias (',' columnAlias)*
    2 fromClause: FROM baseTable (lateralView)*

    Lateral View 描述

    Lateral View 用于UDTF(user-defined table generating functions)中将行转成列,和split, explode等UDTF一起使用,它能够将一行数据拆成多行数据,在此基础上可以对拆分后的数据进行聚合。Lateral View 首先为原始表的每行调用UDTF,UTDF会把一行拆分成一或者多行,Lateral View 再把结果组合,产生一个支持别名表的虚拟表。

    目前Lateral View 不支持有上而下的优化。如果使用Where子句,查询可能将不被编译。解决方法:在查询之前执行set hive.optimize.ppd=false

    例子

    表pageAds。它有两个列:pageid、adid_list:

     

    Column name

    Column type

    pageid

    STRING

    adid_list

    Array<int>

     

     

     

     

     

    pageid

    adid_list

    front_page

    [1, 2, 3]

    contact_page

    [3, 4, 5]

     

     

     

     

     

    执行语句:

     

    1 SELECT pageid, adid
    2 FROM pageAds LATERAL VIEW explode(adid_list) adTable AS adid;

     将输出如下结果:

    pageid (string)

    adid (int)

    "contact_page"

    3

    "contact_page"

    4

    "contact_page"

    5

    "front_page"

    1

    "front_page"

    2

    "front_page"

    3

     

     

     

     

     

     

     

     

     

     

     

    count/group可以被使用:

    1 SELECT adid, count(1)
    2 FROM pageAds LATERAL VIEW explode(adid_list) adTable AS adid
    3 GROUP BY adid;

    int adid

    count(1)

    1

    1

    2

    1

    3

    2

    4

    1

    5

    1

     

     

     

     

     

     

     

     

     

    多个Lateral View

    例如下面的语句:

    1 SELECT * FROM exampleTable
    2 LATERAL VIEW explode(col1) myTable1 AS myCol1
    3 LATERAL VIEW explode(myCol1) myTable2 AS myCol2;

    假设有base表如下:

    Array<int> col1

    Array<string> col2

    [1, 2]

    [a", "b", "c"]

    [3, 4]

    [d", "e", "f"]

     

     

     

     

     

    语句:

    1 SELECT myCol1, col2 FROM baseTable
    2 LATERAL VIEW explode(col1) myTable1 AS myCol1;

    将得到如下结果:

    int mycol1

    Array<string> col2

    1

    [a", "b", "c"]

    2

    [a", "b", "c"]

    3

    [d", "e", "f"]

    4

    [d", "e", "f"]

     

     

     

     

     

     

     

     

    多个 LATERAL VIEW 的语句:

    1 SELECT myCol1, myCol2 FROM baseTable
    2 LATERAL VIEW explode(col1) myTable1 AS myCol1
    3 LATERAL VIEW explode(col2) myTable2 AS myCol2;

    结果如下:

    int myCol1

    string myCol2

    1

    "a"

    1

    "b"

    1

    "c"

    2

    "a"

    2

    "b"

    2

    "c"

    3

    "d"

    3

    "e"

    3

    "f"

    4

    "d"

    4

    "e"

    4

    "f"

    转载于:https://www.cnblogs.com/leistrong/p/3880403.html

    展开全文
  • Lateral Join ?

    2020-12-01 11:34:57
    <div><p>Just wondering if it's possible to perform a LATERAL JOIN with Arel ? Or is this something to implement ? (and if not why :p)</p><p>该提问来源于开源项目:rails/arel</p></div>
  • Lateral View Outer

    2019-12-17 16:39:36
    lateralView: LATERAL VIEW [OUTER] udtf(expression) tableAlias AS columnAlias (',' columnAlias) * fromClause: FROM baseTable (lateralView)* Lateral view outer:当table function不输出任何一行时,对应的...

    语法:

    lateralView: LATERAL VIEW [OUTER] udtf(expression) tableAlias AS columnAlias (',' columnAlias) * fromClause: FROM baseTable (lateralView)*

    Lateral view outer:当table function不输出任何一行时,对应的输入行在Lateral view结果中依然保留,且所有table function输出列为null。

    在Hive0.12.0版本后引入

    用户可以指定可选的OUTER关键字来生成行,即使LATERAL VIEW通常不会生成行。当所使用的UDTF不产生任何行时(使用explode()函数时,explode的列为空时,很容易发生上述这种情况)。 在这种情况下,源数据行不会出现在结果中。如果想让源数据行继续出现在结果中,可以使用 OUTER可以用来阻止关键字,并且来自UDTF的列使用NULL值代替

    举例:

    sql1:select goods_id2,area from explode_lateral_view LATERAL VIEW explode(split(goods_id,','))goods as goods_id2;

    第一个sql中explode返回的数据不是空值,所以正常拆分

    sql2:select goods_id2,area from explode_lateral_view LATERAL VIEW explode(array())goods as goods_id2;

    第二个sql中explode返回的数据是空值,所以不用outer的情况下,不输出任何东西

    sql3:select goods_id2,area from explode_lateral_view LATERAL VIEW Outer explode(array())goods as goods_id2;

    第三个sql在第二个sql的基础上添加了一个Outer,结果会展示。只是来自UDTF的列被NULL值替代。

     

     

    备注:

    <property>

    <!--展示当前数据库名称>
    <name>hive.cli.print.current.db</name>
    <value>true</value>
    </property>

    <property>

    <!--查询的时候打印字段信息>
    <name>hive.cli.print.header</name>
    <value>true</value>
    </property>

     

     

     

     

     

     

     

     

    参考:https://help.aliyun.com/document_detail/87722.html?spm=a2c4g.11186623.6.694.19c16f41znW7iW

    展开全文
  • 主要介绍了介绍PostgreSQL中的Lateral类型,Lateral是PostgreSQL9.3版本以来加入的内置类型,需要的朋友可以参考下
  • Lateral autopilot fix

    2021-01-05 12:06:45
    <p>Fixes lateral autopilot/flight director deviation that arose since the last MSFS patch. Should fix wrongly accumulated integral term in the heading PID controller. <p><strong>May need multiple ...
  • Lateral View explode

    2020-12-10 19:44:28
    Lateral View explode使用过程中的问题 一般使用 select id,con,con_detail from (select 1 as id,'a,b,c' as con union all select 2 as id,null as con union all select 3 as id,'' as con )t lateral view ...
  • Lateral View语法

    2014-03-11 10:37:56
    Lateral View语法 lateralView: LATERAL VIEW udtf(expression) tableAlias AS columnAlias (',' columnAlias)* fromClause: FROM baseTable (lateralView)* 描述 lateral view用于和split, explode等...
  • <ul><li>Add supports for pg:</li><li>LATERAL</li><li>INNER JOIN LATERAL</li><li>LEFT JOIN LATERAL</li><li>RIGHT JOIN LATERAL</li><li>FULL JOIN LATERAL</li><li>CROSS JOIN LATERAL</li></ul> <p>All ...
  • <a href="http://wiki.postgresql.org/wiki/What%27s_new_in_PostgreSQL_9.3#LATERAL_JOIN">http://wiki.postgresql.org/wiki/What%27s_new_in_PostgreSQL_9.3#LATERAL_JOIN</a></p><p>该提问来源于开源项目:...
  • <div><p>That means users should not use the LATERAL keyword in SQL. Implicit lateral is not disabled in current gpdb since that is carefully used in some gpdb specific code change like EXPR/ANY ...
  • 阶梯网络论文2:《Denoising autoencoder with modulated lateral connections learns invariant representation of natural images》
  • Hive Lateral View

    2019-06-14 20:45:00
     1.Lateral View 用于和UDTF函数【explode,split】结合来使用。  2.首先通过UDTF函数将数据拆分成多行,再将多行结果组合成一个支持别名的虚拟表。  3.主要解决在select使用UDTF做查询的过程中查询只能包含单个...
  • HIVE lateral view

    2016-10-25 11:46:08
    转:http://yugouai.iteye.com/blog/1849902 ...Lateral View语法 ...lateralView: LATERAL VIEW udtf(expression) tableAlias AS columnAlias (',' columnAlias)*  fromClause: FROM base
  • Hive学习之Lateral View

    2020-07-05 00:14:22
    Hive学习之Lateral View Lateral view与UDTF函数如explode()一起使用,UDTF对每个输入行产生0或者多个输出行。Lateral view首先在基表的每个输入行应用UDTF,然后连接结果输出行与输入行组成拥有指定表别名的虚拟表...
  • lateral view explode使用

    2020-04-23 13:31:23
    lateral view 侧视图 explode 爆炸 select wdmc,customer_id from( select 1 as wdmc,'14590170|14587203|21396385|22105752' as qyid )a lateral view explode(split(qyid,'|')) as customer_id ...
  • Hive lateral view使用

    2019-07-18 20:46:29
    多行转换:lateral view 说明:lateral view用于和json_tuple,parse_url_tuple,split, explode等UDTF一起使用,它能够将一行数据拆成多行数据,在此基础上可以对拆分后的数据进行聚合。 hive> select s.x,sp ...
  • Hive Lateral view介绍

    万次阅读 2013-12-26 09:43:41
    1). Lateral View语法 ...lateralView: LATERAL VIEW udtf(expression) tableAlias AS columnAlias (',' columnAlias)* fromClause: FROM baseTable (lateralView)* 2). Lateral View用于UDTF(user-defined table
  • hive Lateral View用法

    2020-08-20 03:33:05
    Lateral View 用于和 UDTF 函数(explode、split)结合来使用。 首先通过 UDTF 函数拆分成多行,再将多行结果组合成一个支持别名的虚拟表。 主要解决在 select 使用 UDTF 做查询过程中,查询只能包含单个 UDTF,不能...
  • Hive LATERAL VIEW 函数

    千次阅读 2017-08-22 00:03:33
    函数简介lateral view 函数用于将数据一行转多列,一般与explode、split、collect_set函数一起使用基本使用 案例:现在有一张学生绩效表,记录了每个学生的所有科目的成绩, 需要查询所有拿了A的学生数 student_name...

空空如也

1 2 3 4 5 ... 20
收藏数 1,373
精华内容 549
关键字:

lateral