crunch-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Josh Wills (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CRUNCH-302) PType OutputMapFn not initialised when using MemPipeline
Date Fri, 22 Nov 2013 01:46:35 GMT

     [ https://issues.apache.org/jira/browse/CRUNCH-302?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Josh Wills updated CRUNCH-302:
------------------------------

    Attachment: CRUNCH-302.patch

Fix for this. Pretty small (modulo CRUNCH-293, CRUNCH-300, and CRUNCH-301), so planning on
committing it soon.

> PType OutputMapFn not initialised when using MemPipeline
> --------------------------------------------------------
>
>                 Key: CRUNCH-302
>                 URL: https://issues.apache.org/jira/browse/CRUNCH-302
>             Project: Crunch
>          Issue Type: Bug
>          Components: Core, IO
>    Affects Versions: 0.9.0
>         Environment: Crunch synced to 2aa692e5299ee9d775218d4754ae73f3d58beed1
> java version "1.6.0_65"
> Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
> Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)
>            Reporter: Christophe Van Gysel
>            Assignee: Josh Wills
>            Priority: Minor
>         Attachments: CRUNCH-302.patch
>
>
> It seems that the OutputMapFns for PTypes aren't initialised when running in local memory.
For most types this doesn't matter, but it gets tricky when using a Tuple as a key or value
type in a PTable or a PCollection of Tuples; the following exception gets thrown:
> Caused by: java.lang.NullPointerException
> 	at org.apache.crunch.types.writable.Writables$TupleTWMapFn.map(Writables.java:376)
> 	at org.apache.crunch.types.writable.Writables$TupleTWMapFn.map(Writables.java:337)
> 	at org.apache.crunch.impl.mem.MemPipeline.writeSequenceFileFromPTable(MemPipeline.java:270)
> 	at org.apache.crunch.impl.mem.MemPipeline.write(MemPipeline.java:196)
> 	at org.apache.crunch.impl.mem.MemPipeline.write(MemPipeline.java:177)
> I'm currently working around this issue by explicitly calling the initialize() method
on MapFn, like this:
> table.getPTableType().getValueType().getOutputMapFn().initialize();



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Mime
View raw message