中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

开启部分下推功能时SQL语句过滤char类型字段有概率不输出结果的解决方法

问题现象描述

开启部分下推功能,SQL语句中过滤char类型字段会有不输出结果的概率。

关键过程、根本原因分析

原生Spark对char类型数据处理不一致导致:

  • 如果ORC、Parquet类型的表和数据在原生Spark上创建,在Spark上查询,无论Spark启动参数spark.sql.orc.impl=hive还是spark.sql.orc.impl=native,char类型数据在Spark读取阶段都会补齐空格。
  • 如果ORC、Parquet类型的表和数据在Hive上创建,在Spark上查询,当spark.sql.orc.impl=native时,在ORC和Parquet表中,char类型数据在Spark读取阶段不会补齐空格;当spark.sql.orc.impl=hive时,在Parquet表中,char类型数据在Spark读取阶段不会补齐空格,但是在ORC表中,char类型数据在Spark读取阶段会补齐空格。

部分下推功能逻辑是以在Hive上创建和插入表和数据,在Spark上查询为标准进行处理,因此当表和数据在原生Spark上创建和插入,会产生问题。

结论、解决方案及效果

所有表和数据都在Hive上创建和插入即可。

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词