我正在尝试使用opencsvserde在下面的csv数据集上创建一个配置单元表
WITH SERDEPROPERTIES ("quoteChar"='\"', "separatorChar"=',')
但是Hive的table正在失去 £
符号,并显示替换字符 �
.
FWID,GENDER,Ethnicity,AgeAtPeriodEnd,RC_UnitCost,QUANTITY,ElemTypeDesc
2100001,F,White,WEEK,"£2,027.07",3455,AA - Community Meals
2100011,F,White,YEAR,"£75.00,488776",AA - Community Meals
2100044,M,White,WEEK,"£5.40,39.0",123,Ld-ExtDc - Day
2100044,M,White,WEEK,£5.40,9856,FF - Community Meals
2100044,M,White,WEEK,£5.40,"789,193",FF - Community Meals
2100044,M,White,WEEK,£5.40,"876,241",FE - Community Meals
2100044,M,White,WEEK,£5.40,3888,"Community Meals,ExtDc - Day"
2100044,M,White,WEEK,£5.40,235,Ld-ExtDc - Day
2100044,M,White,WEEK,£5.40,8789,FE - Community Meals
2100044,M,White,WEEK,"£10.07,027.7",16478,FE - Community Meals
2100051,F,White,WEEK,£470.00,12375,RG - Community Meals
此外,我还尝试使用lazysimpleserde创建表
WITH SERDEPROPERTIES ( 'escape.delim'='\"', 'field.delim'=',', 'line.delim'='\n', 'serialization.encoding'='windows-1252')
在本例中,使用 £
但由于缺少符号,值的对齐不起作用 quotechar
作为 \"
.
请提出处理这个问题的方法。
1条答案
按热度按时间ht4b089n1#
这里有一种方法:
在notepad++中打开csv文件,将编码转换为utf-8,并将文件推送到hdfs。
创建具有以下属性的外部表。