A snippet of your parseString javascript UDF may help .
Can you share it ?
Additionally, you have just mentioned the LOAD statement in your pig script.
Can you show how you "register"ed your javascript UDF and also how you used
your js UDF ?

Regards,
Debabrata

On Tue, Jul 7, 2015 at 2:26 PM, Divya Gehlot <[email protected]>
wrote:

> Hi,
> I have sritten a javscript UDF and as mentioned in pig guide
> <http://pig.apache.org/docs/r0.9.2/udf.html#udf-java> .I have declared the
> outputschema in my js file
>
> parseString.outputSchema = "dataMap:chararray";
>
> whereas same datatype is availble in my pig script too.
> A = LOAD '$input_file' AS(
> number3:int,number4:float,dataMap:chararray);
>
> Still I am getting below error
> 2015-07-07 01:46:59,466 [main] ERROR org.apache.pig.tools.grunt.GruntParser
> - ERROR 2997: Unable to recreate exception from backed error: Error:
> org.apache.pig.backend.executionengine.ExecException: ERROR 0: Exception
> while executing [POUserFunc (Name:
> POUserFunc(org.apache.pig.scripting.js.JsFunction)[chararray] - scope-35
> Operator Key: scope-35) children: null at []]:
> org.mozilla.javascript.EcmaError: ReferenceError: "dataMap" is not defined.
> (/x/home/lrennison/monitoring.js#9)
>         at
>
> org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator.getNext(PhysicalOperator.java:366)
>         at
>
> org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach.processPlan(POForEach.java:383)
>         at
>
> org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach.getNextTuple(POForEach.java:303)
>         at
>
> org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapBase.runPipeline(PigGenericMapBase.java:279)
>         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:145)
>         at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:784)
>         at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
>         at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:163)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at javax.security.auth.Subject.doAs(Subject.java:415)
>         at
>
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628)
>         at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)
> Caused by: org.mozilla.javascript.EcmaError: ReferenceError: "dataMap" is
> not defined. (/x/home/lrennison/monitoring.js#9)
>         at
>
> org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3654)
>         at
>
> org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3632)
>         at
> org.mozilla.javascript.ScriptRuntime.notFoundError(ScriptRuntime.java:3717)
>         at
>
> org.mozilla.javascript.ScriptRuntime.nameOrFunction(ScriptRuntime.java:1758)
>         at org.mozilla.javascript.ScriptRuntime.name
> (ScriptRuntime.java:1697)
>         at
> org.mozilla.javascript.gen.c2._c2(/x/home/lrennison/monitoring.js:9)
>         at
> org.mozilla.javascript.gen.c2.call(/x/home/lrennison/monitoring.js)
>         at
> org.mozilla.javascript.NativeArray.iterativeMethod(NativeArray.java:1582)
>         at
> org.mozilla.javascript.NativeArray.execIdCall(NativeArray.java:322)
>         at
> org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:129)
>         at
> org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:66)
>         at
> org.mozilla.javascript.gen.c2._c1(/x/home/lrennison/monitoring.js:4)
>         at
> org.mozilla.javascript.gen.c2.call(/x/home/lrennison/monitoring.js)
>         at
> org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:398)
>         at
> org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3065)
>         at
> org.mozilla.javascript.gen.c2.call(/x/home/lrennison/monitoring.js)
>         at
> org.apache.pig.scripting.js.JsScriptEngine.jsCall(JsScriptEngine.java:170)
>         at org.apache.pig.scripting.js.JsFunction.exec(JsFunction.java:215)
>         at
>
> org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserFunc.getNext(POUserFunc.java:323)
>         at
>
> org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserFunc.getNextString(POUserFunc.java:423)
>         at
>
> org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator.getNext(PhysicalOperator.java:343)
>         ... 13 more
>
> Can somebody point pout the missing area .
> Would really appreciate your help .
>

Reply via email to