在配置单元视图中查询时,如何处理包含(,),$,%和空格等特殊字符的列名

mbjcgjjk  于 2021-06-29  发布在  Hive
关注(0)|答案(1)|浏览(276)

希望大家都知道,在hive0.13及更高版本中,列名可以包含任何unicode字符(请参阅hive-6013)。在backticks(`)中指定的任何列名都是按字面意义处理的,但它似乎适用于表。在我的例子中,我创建了一个视图,它使用了几个列,这些列的列名中包含特殊字符,如(,)、$、%和空格。我在创建视图时使用了backtics,并创建了视图,但在使用“select*from view\u name”检索时,我在没有启动任何map reduce作业的情况下遇到以下错误:
失败:执行错误,从org.apache.hadoop.hive.ql.exec.mr.mapredlocaltask返回代码1
它只生成查询id,但没有创建作业,因此找不到日志。但是,当我尝试在色调Hive编辑器我得到了工作运行,但无法取得结果。

counters:
File Bytes Read 1882965
File Bytes Written  2120145
Hdfs Bytes Read 43923
Hdfs Bytes Written  9250984
Hdfs Read Ops   3
Hdfs Write Ops  2

Committed Heap Bytes    220725248
Cpu Milliseconds    6420
Gc Time Millis  46
Merged Map Outputs  1
Physical Memory Bytes   286355456
Reduce Input Groups 19332
Reduce Input Records    19332
Reduce Output Records   0
Reduce Shuffle Bytes    1882961
Shuffled Maps   1
Spilled Records 19332
Virtual Memory Bytes    1629929472
Created Files   1
Records Out 0   19332

是否与权限问题有关?

zynd9foi

zynd9foi1#

select  REGEXP_REPLACE(c1, "%|)|,|-|\\$",'')) c1,
from tablename;

使用 REGEXP_REPLACE 将“”中的所有字符替换为列c1中的“”

相关问题