presto中不同类型的字段关联问题

栏目: 数据库 · 发布时间: 5年前

内容简介:今天在使用presto查数据时,遇到一个诡异的问题,相同的sql,每次查询的结果确不一样,sql如下执行很多次,每次的结果数都不一样,查了很多资料都无济于事,后来猜测是不是ext转int时报错了,在有些节点上执行失败,调整sql如下结果竟然正常了,证实了上面的猜测。

今天在使用presto查数据时,遇到一个诡异的问题,相同的sql,每次查询的结果确不一样,sql如下

select
t1.orderid,t1.ext,t2.id
from (
    select
    distinct orderid,ext
    from odl_order_detail_cps
    where billdate>='2019-05-06' and order_type=1 and isbill=1
) t1
left join dim_short_link_cps t2 on cast(t1.ext as int)=t2.id;

执行很多次,每次的结果数都不一样,查了很多资料都无济于事,后来猜测是不是ext转int时报错了,在有些节点上执行失败,调整 sql 如下

select
t1.orderid,t1.ext,t2.id
from (
    select
    distinct orderid,ext
    from odl_order_detail_cps
    where billdate>='2019-05-06' and order_type=1 and isbill=1
) t1
left join dim_short_link_cps t2 on  t1.ext=cast(t2.id as varchar);

结果竟然正常了,证实了上面的猜测。

这种错误是因为ext参数有null的情况,在cast转换时,出错了,然后造成节点的任务失败,所以结果是执行正常的节点返回的数据。

在hive中就不存在这样的问题

欢迎订阅「K叔区块链」 - 专注于区块链技术学习

presto中不同类型的字段关联问题

博客地址: http://www.jouypub.com

简书主页: https://www.jianshu.com/u/756c9c8ae984

segmentfault主页: https://segmentfault.com/blog/jouypub

腾讯云主页: https://cloud.tencent.com/developer/column/72548

以上所述就是小编给大家介绍的《presto中不同类型的字段关联问题》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C++标准库(第2版)

C++标准库(第2版)

Nicolai M. Josuttis / 侯捷 / 电子工业出版社 / 2015-6 / 186.00元

《C++标准库(第2版)》是全球C++经典权威参考书籍时隔12年,基于C++11标准的全新重大升级。标准库提供了一组公共类和接口,极大地拓展了C++语言核心功能。《C++标准库(第2版)》详细讲解了每一标准库组件,包括其设计目的和方法、复杂概念的剖析、实用而高效的编程细节、存在的陷阱、重要的类和函数,又辅以大量用C++11标准实现的实用代码范例。除覆盖全新组件、特性外,《C++标准库(第2版)》一......一起来看看 《C++标准库(第2版)》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换