当前位置: 首页 > news >正文

hive 之select 中文乱码

此处的中文乱码和mysql的库表 编码 latin utf 无关。

直接上案例。

有时候我们需要自定义一列,有时是汉字有时是字母,结果遇到这种情况了。

说实话看到这真是糟心。这谁受得了。

单独select 没有任何问题。

这是怎么回事呢? 经过一番检查,发现有个地方类似与 "境内"  as col但是没乱码,

此时怀疑就是if 函数起了作用,但是一时间不知道是为啥。。

经过多方面测试 concat("境内") concat_ws("","境内")没用,

concat_ws("",arrary("境内")) 有用,此时也不知道如何下手,只有掏出大杀器 explain.

起作用的

Plan optimized by CBO.
""
Vertex dependency in root stage
Map 1 <- Map 3 (BROADCAST_EDGE)
Reducer 2 <- Map 1 (SIMPLE_EDGE)
""
Stage-0
  Fetch Operator
    limit:-1
    Stage-1
      Reducer 2
      File Output Operator [FS_14]
        Select Operator [SEL_13] (rows=105 width=273)
"          Output:[""_col0"",""_col1"",""_col2"",""_col3"",""_col4"",""_col5"",""_col6"",""_col7""]"
          Group By Operator [GBY_12] (rows=105 width=273)
"            Output:[""_col0"",""_col1"",""_col2"",""_col3"",""_col4""],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4"
          <-Map 1 [SIMPLE_EDGE] vectorized
            SHUFFLE [RS_28]
"              PartitionCols:_col0, _col1, _col2, _col3, _col4"
              Group By Operator [GBY_27] (rows=211 width=273)
"                Output:[""_col0"",""_col1"",""_col2"",""_col3"",""_col4""],keys:_col1, _col2, _col3, _col4, _col5"
                Map Join Operator [MAPJOIN_26] (rows=211 width=273)
"                  Conds:SEL_25._col0=RS_23._col0(Inner),Output:[""_col1"",""_col2"",""_col3"",""_col4"",""_col5""]"
                <-Map 3 [BROADCAST_EDGE] vectorized
                  BROADCAST [RS_23]
                    PartitionCols:_col0
                    Select Operator [SEL_22] (rows=1 width=736)
"                      Output:[""_col0"",""_col1"",""_col2"",""_col3""]"
                      Filter Operator [FIL_21] (rows=1 width=736)
                        predicate:bank_code is not null
                        TableScan [TS_3] (rows=1 width=736)
"                          dwapsdata@dw_conf_ce_bank_dict_v,t1,Tbl:COMPLETE,Col:NONE,Output:[""bank_code"",""bank_name"",""bank_short_name"",""bank_onshore_flag""]"
                <-Select Operator [SEL_25] (rows=192 width=273)
"                    Output:[""_col0"",""_col1""]"
                    Filter Operator [FIL_24] (rows=192 width=273)
                      predicate:bank_code is not null
                      TableScan [TS_0] (rows=192 width=273)
"                        dwdmdata@dm_ce_f_portrait_credit_line,t,Tbl:COMPLETE,Col:COMPLETE,Output:[""bank_code""]"
""

没有作用的

Plan optimized by CBO.
""
Vertex dependency in root stage
Map 1 <- Map 3 (BROADCAST_EDGE)
Reducer 2 <- Map 1 (SIMPLE_EDGE)
""
Stage-0
  Fetch Operator
    limit:-1
    Stage-1
      Reducer 2 vectorized
      File Output Operator [FS_31]
        Select Operator [SEL_30] (rows=105 width=273)
"          Output:[""_col0"",""_col1"",""_col2"",""_col3"",""_col4"",""_col5"",""_col6""]"
          Group By Operator [GBY_29] (rows=105 width=273)
"            Output:[""_col0"",""_col1"",""_col2"",""_col3"",""_col4""],keys:KEY._col0, KEY._col1, KEY._col2, KEY._col3, KEY._col4"
          <-Map 1 [SIMPLE_EDGE] vectorized
            SHUFFLE [RS_28]
"              PartitionCols:_col0, _col1, _col2, _col3, _col4"
              Group By Operator [GBY_27] (rows=211 width=273)
"                Output:[""_col0"",""_col1"",""_col2"",""_col3"",""_col4""],keys:_col1, _col2, _col3, _col4, _col5"
                Map Join Operator [MAPJOIN_26] (rows=211 width=273)
"                  Conds:SEL_25._col0=RS_23._col0(Inner),Output:[""_col1"",""_col2"",""_col3"",""_col4"",""_col5""]"
                <-Map 3 [BROADCAST_EDGE] vectorized
                  BROADCAST [RS_23]
                    PartitionCols:_col0
                    Select Operator [SEL_22] (rows=1 width=736)
"                      Output:[""_col0"",""_col1"",""_col2"",""_col3""]"
                      Filter Operator [FIL_21] (rows=1 width=736)
                        predicate:bank_code is not null
                        TableScan [TS_3] (rows=1 width=736)
"                          dwapsdata@dw_conf_ce_bank_dict_v,t1,Tbl:COMPLETE,Col:NONE,Output:[""bank_code"",""bank_name"",""bank_short_name"",""bank_onshore_flag""]"
                <-Select Operator [SEL_25] (rows=192 width=273)
"                    Output:[""_col0"",""_col1""]"
                    Filter Operator [FIL_24] (rows=192 width=273)
                      predicate:bank_code is not null
                      TableScan [TS_0] (rows=192 width=273)
"                        dwdmdata@dm_ce_f_portrait_credit_line,t,Tbl:COMPLETE,Col:COMPLETE,Output:[""bank_code""]"
""

对比发现

vectorzied 这个单词一出来我就知道怎么回事了。

hive decimal bug, nvl(decimal,1)=0_cclovezbf的博客-CSDN博客

这个b参数好处没体会到一点,bug到是一堆。

set hive.vectorized.execution.enabled=false; 即可解决中文乱码问题!!!!!!!

其实还有别的办法,但是和concat_ws(array(""))一样比较丑陋,我就不说了

http://www.lryc.cn/news/191416.html

相关文章:

  • 优化|优化处理可再生希尔伯特核空间的非参数回归中的协变量偏移
  • Netty深入浅出Java网络编程学习笔记(一) Netty入门篇
  • 自动化产线集控系统(西门子CNC 840D/840DSL远程控制)
  • MVVM 与 MVC区别和应用场景?
  • Linux开发-Ubuntu软件源工具
  • 环境下载地址
  • E. Block Sequence-Codeforces Round 903 (Div. 3)
  • 路由router
  • 学习编程-先改变心态
  • 【Node.js】http 模块
  • S/4 HANA 大白话 - 财务会计-2 总账主数据
  • Redis根据中心点坐标和半径筛选符合的数据
  • springboot 集成 zookeeper 问题记录
  • java中的接口interface
  • 多个git提交,只推送其中一个到远程该如何处理
  • uniapp中input的disabled属性
  • Jmeter连接mysql数据库详细步骤
  • Xcode 14.3.1build 报错整理
  • TensorFlow入门(十三、动态图Eager)
  • 批量执行insert into 的脚本报2006 - MySQL server has gone away
  • 翻译docker官方文档(残缺版)
  • PySpark 概述
  • 『heqingchun-ubuntu系统下Qt报错connot find -lGL解决方法』
  • 代码整洁之道:程序员的职业素养(十六)
  • OSPF的原理与配置
  • uni-app : 生成三位随机数、自定义全局变量、自定义全局函数、传参、多参数返回值
  • EF core 如何撤销对对象的更改
  • 以字符串mark作为分隔符,对字符串s进行分割
  • c++day6(菱形继承、虚继承、多态、模板、异常)
  • 外卖跑腿系统开发的最佳实践和成功案例