Hadoop 阿帕奇清管器式铸造

Hadoop 阿帕奇清管器式铸造,hadoop,apache-pig,Hadoop,Apache Pig,我正在使用ApachePig做一些数据处理工作。我写了一个像这样的拉丁猪字: 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; Pig出现了一个错误: java.lang.ClassCastE

我正在使用ApachePig做一些数据处理工作。我写了一个像这样的拉丁猪字:

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;
Pig出现了一个错误:

java.lang.ClassCastException: org.apache.pig.data.DataByteArray cannot be cast to java.lang.Integer at org.apache.pig.backend.hadoop.HDataType.getWritableComparableTypes(HDataType.java:115) at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapReduce$Map.collect(PigGenericMapReduce.java:124) at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapBase.runPipeline(PigGenericMapBase.java:281) at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapBase.map(PigGenericMapBase.java:274) at org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapBase.map(PigGenericMapBase.java:64) at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144) at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370) at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:212) 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) 这是一个数据转换问题。由于原始数据可能包含一些损坏的记录,我无法在加载时确定模式,以防数据丢失


那我该怎么做才能解决这个问题呢?非常感谢

您应该在数据分析之前修复原始数据(数据清理)

有一个pig UDF,试图用预期的模式清理原始数据,但没有合并到主分支中。 UDF用于数据清理具有预期模式的脏数据

您可以尝试使用自己喜欢的工具清理原始数据。 请参阅中推荐的工具

在数据分析之前,您应该修复原始数据(数据清理)

有一个pig UDF,试图用预期的模式清理原始数据,但没有合并到主分支中。 UDF用于数据清理具有预期模式的脏数据

您可以尝试使用自己喜欢的工具清理原始数据。 请参阅中推荐的工具