Type mismatch in key from map: expected 
org.apache.pig.impl.io.NullableFloatWritable, recieved 
org.apache.pig.impl.io.NullableText 
-----------------------------------------------------------------------------------------------------------------------------------

                 Key: PIG-1278
                 URL: https://issues.apache.org/jira/browse/PIG-1278
             Project: Pig
          Issue Type: Bug
    Affects Versions: 0.6.0
            Reporter: Viraj Bhat
             Fix For: 0.7.0


I have a script which uses Map data, and runs a UDF, which creates random 
numbers and then orders the data by these random numbers.

{code}
REGISTER myloader.jar;
--jar produced from the source code listed below
REGISTER math.jar;

DEFINE generator math.Random();

inputdata = LOAD '/user/viraj/mymapdata'   USING MyMapLoader()    AS (s:map[], 
m:map[], l:map[]);

queries = FILTER inputdata   BY m#'key'#'query' IS NOT null;

queries_rand = FOREACH queries  GENERATE generator('') AS rand_num, (CHARARRAY) 
m#'key'#'query' AS query_string;

queries_sorted = ORDER queries_rand  BY rand_num  PARALLEL 10;

queries_limit = LIMIT queries_sorted 1000;

rand_queries = FOREACH queries_limit  GENERATE query_string;

STORE rand_queries INTO 'finalresult';

{code}

UDF source for Random.java
{code}
package math;

import java.io.IOException;

/*
* Implements a random float [0,1) generator.
*/

public class Random extends EvalFunc<Float>
{
        private final Random m_rand = new Random();

       public Float exec(Tuple input) throws IOException
        {
               return new Float(m_rand.nextFloat());
        }

        public Schema outputSchema(Schema input)
        {
               final String name = getSchemaName(getClass().getName(), input);
               return new Schema(new Schema.FieldSchema(name, DataType.FLOAT));
        }
}
{code}

Running this script returns the following error in the Mapper
=============================================
java.io.IOException: Type mismatch in key from map: expected 
org.apache.pig.impl.io.NullableFloatWritable, recieved 
org.apache.pig.impl.io.NullableText at 
org.apache.hadoop.mapred.MapTask$MapOutputBuffer.collect(MapTask.java:845) at 
org.apache.hadoop.mapred.MapTask$OldOutputCollector.collect(MapTask.java:466) 
at 
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapReduce$Map.collect(PigMapReduce.java:109)
 at 
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapBase.runPipeline(PigMapBase.java:255)
 at 
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapBase.map(PigMapBase.java:244)
 at 
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapReduce$Map.map(PigMapReduce.java:94)
 at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:50) at 
org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:358) at 
org.apache.hadoop.mapred.MapTask.run(MapTask.java:307) at 
org.apache.hadoop.mapred.Child.main(Child.java:159) 
=============================================

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to