首页 > 新闻中心 > 掌酷科技 > 数码 > VRAR >

SQL任务运行时间省40%,后悔没早从Hive迁到Spark…(6)
2021-06-02 09:45 dbaplus社群

collect_list执行结果的顺序取决于记录被扫描的顺序,Spark SQL执行过程中是多个任务并发执行的,因此记录被读取的顺序是无法保证的。

③ row_number

假设数据表如下:

执行如下SQL:

执行结果:

差异说明:

执行row_number时,在一个分区内部,可以保证order by字段是有序的,对于非分区非order by字段的顺序是没有保证的。

④ map类型字段读写

数据表建表语句:

假设数据表如下:

执行如下SQL:

执行结果:

差异说明:

Map类型是无序的,同一份数据,在query时显示的各个key的顺序会有变化。

⑤ sum(double/float)

假设数据表如下:

执行如下SQL:

执行结果:

差异说明:

这是由float/double类型的表示方式决定的,浮点数不能表示所有的实数,在执行运算过程中会有精度丢失,对于几个浮点数,执行加法时的顺序不同,结果有时就会不同。

⑥ 顺序差异解决方案

由以上UDF造成的差异可以忽略,相关任务如果在资源方面也有节省,那么最终的状态是经验可迁移状态,符合迁移条件。

2)非顺序差异

下面几个日期/时间相关函数,当有异常输入是Spark SQL会返回NULL,而Hive SQL会返回一个非NULL值。

标签: 后悔 时间 运行 迁到
0

上一篇:用Substance的小伙伴,快看看这些纹理材质是不是
下一篇:没有了
官方微信公众号:掌酷门户(wapzknet)

首页 > 新闻中心 > 掌酷科技 > 数码 > VRAR >
相关资讯

新闻热点
精选美图


客户端合作免责友链
Copyright 2009-2021 蜀ICP备09035849号