Additional info:
If I do
Clicks =
LOAD 'access_log.gz'
USING <my loader> AS (useragent, status);
I get
Clicks: {useragent: bytearray,status: bytearray}
Followed by (on screen) the correct data.
I get the previously mentioned error when i do
Clicks =
LOAD 'access_log.gz'
USING <my loader> AS (useragent:*chararray*, status:*chararray*);
Niels
On Wed, Jul 10, 2013 at 9:37 PM, Niels Basjes <[email protected]> wrote:
> Hi,
>
> I'm writing a custom Loader for Pig and I'm stuck on the following problem.
>
> When I use this loader from a pig script and I do a "DESCRIBE Clicks;" I
> get
> *Clicks: {useragent: chararray,status: chararray}*
>
> So apparently the data from my loader is seen correctly.
>
> How ever when I then do:
> DUMP Clicks;
>
> I get
>
> *java.lang.Exception:
> org.apache.pig.backend.executionengine.ExecException: ERROR 1071: Cannot
> convert a generic_writablecomparable to a String*
> * at
> org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:404)*
> *Caused by: org.apache.pig.backend.executionengine.ExecException: ERROR
> 1071: Cannot convert a generic_writablecomparable to a String*
> * at org.apache.pig.data.DataType.toString(DataType.java:1105)*
>
> What am I doing wrong here?
>
>
> My current Loader in summary looks like this:
>
> *public class Loader extends LoadFunc {
> *
> * public Loader(String... parameters) { ... }
> *
> * public InputFormat<?, ?> getInputFormat() throws IOException { ... }*
> * public Tuple getNext() throws IOException { *
> * ...*
> * List<Text> values = new ArrayList<Text>();*
> * for (...) {*
> * Text value = <get the value from somewhere>*
> * values.add((Text)value);
> *
> * }*
> * tuple = tupleFactory.newTuple(values);
> *
> * return tuple;
> *
> * }*
> *
> *
> * public void prepareToRead(...) { ... }
> *
> * public void setLocation(String location, Job job) { ... }
> *
> *}*
>
>
> --
> Best regards / Met vriendelijke groeten,
>
> Niels Basjes
>
--
Best regards / Met vriendelijke groeten,
Niels Basjes