加载到配置单元时从平面文件中删除单引号

8fq7wneg  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(315)

嘿,我正在平面文件数据上创建一个配置单元外部表。
平面文件中的数据如下所示:
“”,3,“xyz”
当我将它加载到配置单元表中时,它会用单引号显示结果。但我希望它是这样的:
,3,xyz
有什么办法吗?

ymdaylpp

ymdaylpp1#

我能想出两种方法来得到想要的结果。
使用hive-substr和length中现有的字符串函数。

select SUBSTR("\'abc\'",2,length("\'abc\'")-2) , SUBSTR("\'3\'",2,length("\'3\'")-2) ,  SUBSTR("\'xyz\'",2,length("\'xyz\'")-2)

广义查询

select SUBSTR(col1,2,length(col1)-2) , SUBSTR(col2,2,length(col2)-2) ,  SUBSTR(col3,2,length(col3)-2)

注意:hive substr方法要求字符串索引从“1”开始,而不是从“0”开始
写你自己的自定义项来切掉每根线的第一个和最后一个字母。
如何转换百万行?假设您有一个表(名为“staging”),其中有3列和100万条记录。如果您在下面运行查询,您将有一个新表“final”,它的开始或结束处都没有任何单引号。

INSERT INTO final SELECT SUBSTR(col1,2,length(col1)-2) , SUBSTR(col2,2,length(col2)-2) ,  SUBSTR(col3,2,length(col3)-2) from staging

一旦上述查询完成,您将在“final”表中得到所需的结果

相关问题