我的目标是导出具有固定宽度列的文件。我有以下HQL:
insert overwrite table destination_table
select concat(rpad(p.artist_name,40," "),rpad(p.release_name,40," "))
from source_table;
" destination_table"是一个写入文件的外部表。当artist_name和release_name包含普通英文字符时没问题,结果如下:
paulo kuong[29 space characters]I am terribly stuck album
我有40个字符固定宽度列。但是,当字符串不是英语时,我得到了:
장재인[31 space characters]다른 누구도 아닌 너에게
假设是37个空格字符。 LPAD似乎无法正确填充空格。当我做"长度(장재인)"它返回3个字符..所以在HIVE中有一些奇怪的lpad和rpad
有什么想法吗?
答案 0 :(得分:0)
我认为singleton
按预期工作。根据文件,
rpad
因此,在您的情况下,rpad(string str, int len, string pad)
#Returns str, right-padded with pad to a length of len
的长度应为40.
简而言之,장재인[31 space characters]
的长度应为9。
我在장재인
进行了检查,然后python
的长度确实是9。
장재인