hadoop pig在加载值字段包含逗号和特殊字符的csv文件时出现“load”问题

esbemjvw  于 2021-05-29  发布在  Hadoop
关注(0)|答案(5)|浏览(400)

我有一个csv文件,其示例数据如下。。
姓名、工作、薪水

xuo3flqw

xuo3flqw1#

请按照以下步骤操作:
我不想用Pig来储存, org.apache.pig.piggybank.storage.CSVExcelStorage() 不要使用chararray,而是将salary的数据类型指定为float。

fjaof16o

fjaof16o2#


杰克,12,00美元

57hvy0tb

57hvy0tb3#


当我用这个命令加载这个数据时 A = LOAD '/USER/XYZ/PIG/FILENAME.CSV' USING PIGSTORAGE(',') as (NAME:chararray,JOB:chararray, Salary:chararray) ; “$12,00”中的逗号被视为分隔字符,仅加载$12。有什么解决办法吗?是否可以将salary字段加载为整数(也忽略“$”符号)。。

n8ghc7c1

n8ghc7c14#


约翰,人力资源部,24,00美元

mpbci0fu

mpbci0fu5#

使用“|”作为分隔符加载文件。对于$符号,请使用replace命令,然后将字段强制转换为int

A = LOAD '/USER/XYZ/PIG/FILENAME.CSV' USING PIGSTORAGE('|') as (NAME:chararray,JOB:chararray, Salary:chararray) ;
A1 = FOREACH A GENERATE NAME,JOB,(int)REPLACE(Salary,'([^a-zA-Z0-9.,\\s]+)','');

相关问题