Sergey created PIG-3357:
---------------------------

             Summary: Pig doesn't take case of declared float and converts it 
to double
                 Key: PIG-3357
                 URL: https://issues.apache.org/jira/browse/PIG-3357
             Project: Pig
          Issue Type: Bug
          Components: piggybank
    Affects Versions: 0.11
         Environment: cdh 4.3.0
            Reporter: Sergey


Here is the script:
{code}
register /usr/lib/pig/lib/avro-1.7.4.jar;
register /usr/lib/pig/lib/json-simple-1.1.jar;
register /usr/lib/pig/piggybank.jar;

register test.py using jython as udf;

table_in = load 'in' as (v: float);
table_out = foreach table_in generate udf.test(v);
store table_out into 'out' using 
org.apache.pig.piggybank.storage.avro.AvroStorage('schema', '{"name": "test", 
"type": "float"}');
{code}

Here is UDF:
{code=python}
@outputSchema("v: float")
def test(v):
  return v
{code}

Here is an input:
{code}
1
{code}

Here is the stacktrace:
java.lang.Exception: org.apache.avro.file.DataFileWriter$AppendWriteException: 
java.io.IOException: Cannot convert to float:class java.lang.Double
        at 
org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:404)
Caused by: org.apache.avro.file.DataFileWriter$AppendWriteException: 
java.io.IOException: Cannot convert to float:class java.lang.Double
        at org.apache.avro.file.DataFileWriter.append(DataFileWriter.java:260)
        at 
org.apache.pig.piggybank.storage.avro.PigAvroRecordWriter.write(PigAvroRecordWriter.java:49)
        at 
org.apache.pig.piggybank.storage.avro.AvroStorage.putNext(AvroStorage.java:722)
        at 
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigOutputFormat$PigRecordWriter.write(PigOutputFormat.java:139)
        at 
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigOutputFormat$PigRecordWriter.write(PigOutputFormat.java:98)
        at 
org.apache.hadoop.mapred.MapTask$NewDirectOutputCollector.write(MapTask.java:558)
        at 
org.apache.hadoop.mapreduce.task.TaskInputOutputContextImpl.write(TaskInputOutputContextImpl.java:85)
        at 
org.apache.hadoop.mapreduce.lib.map.WrappedMapper$Context.write(WrappedMapper.java:106)
        at 
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigMapOnly$Map.collect(PigMapOnly.java:48)
        at 
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapBase.runPipeline(PigGenericMapBase.java:285)
        at 
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapBase.map(PigGenericMapBase.java:278)
        at 
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapBase.map(PigGenericMapBase.java:64)
        at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:140)
        at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:672)
        at org.apache.hadoop.mapred.MapTask.run(MapTask.java:330)
        at 
org.apache.hadoop.mapred.LocalJobRunner$Job$MapTaskRunnable.run(LocalJobRunner.java:266)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:679)
Caused by: java.io.IOException: Cannot convert to float:class java.lang.Double
        at 
org.apache.pig.piggybank.storage.avro.PigAvroDatumWriter.writeFloat(PigAvroDatumWriter.java:281)
        at 
org.apache.pig.piggybank.storage.avro.PigAvroDatumWriter.write(PigAvroDatumWriter.java:88)
        at 
org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:58)
        at org.apache.avro.file.DataFileWriter.append(DataFileWriter.java:257)
        ... 21 more

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to