【发布时间】:2016-04-19 07:44:54
【问题描述】:
我正在使用 Apache Pig 进行一些数据处理工作。我写了一个像这样的猪拉丁脚本:
raw = Load 'data.csv' USING MyLoader();
repaired = FOREACH raw GENERATE MyRepairFunc(*);
filtered = FOREACH repaired GENERATE $0 AS name:chararray, $3 AS age:int;
DUMP filtered;
猪出现错误:
java.lang.ClassCastException:org.apache.pig.data.DataByteArray 不能转换为 java.lang.Integer 在 org.apache.pig.backend.hadoop.HDataType.getWritableComparableTypes(HDataType.java:115) 在 org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapReduce$Map.collect(PigGenericMapReduce.java:124) 在 org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapBase.runPipeline(PigGenericMapBase.java:281) 在 org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapBase.map(PigGenericMapBase.java:274) 在 org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapBase.map(PigGenericMapBase.java:64) 在 org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144) 在 org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764) 在 org.apache.hadoop.mapred.MapTask.run(MapTask.java:370) 在 org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:212)这是一个数据转换问题。由于原始数据可能包含一些损坏的记录,因此在加载时我无法确定架构,以防数据丢失。
那我应该怎么做才能解决这个问题?非常感谢
【问题讨论】:
标签: hadoop apache-pig