Using Illustrate with Javascript UDF throws NEP
-----------------------------------------------
Key: PIG-2478
URL: https://issues.apache.org/jira/browse/PIG-2478
Project: Pig
Issue Type: Bug
Affects Versions: 0.11
Environment: Mac OSX Lion 10.7.2, Hadoop (0.20.205.0), Pig (Apache Pig
version 0.11.0-SNAPSHOT (r1230844).
Reporter: dan young
When I try to run illustrate while using a Javascript UDF, I always get a
NEP....but if I do a dump/store, everything works fine.
dans-MacBook-Pro:pig danoyoung$ pig -x local
2012-01-12 22:16:57,131 [main] INFO org.apache.pig.Main - Logging error
messages to: /Users/danoyoung/projects/pig/pig_1326431817128.log
2012-01-12 22:16:57,386 [main] INFO
org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting to
hadoop file system at: file:///
2012-01-12 22:16:57.483 java[27809:1903] Unable to load realm info from
SCDynamicStore
grunt> set io.sort.mb 500;
grunt> register '/Users/danoyoung/projects/pig/udf/udf.js' using
org.apache.pig.scripting.js.JsScriptEngine as myfuncs;
2012-01-12 22:17:24,803 [main] INFO org.apache.pig.scripting.js.JsScriptEngine
- Register scripting UDF: get_date_marker
2012-01-12 22:17:24,804 [main] INFO org.apache.pig.scripting.js.JsScriptEngine
- Register scripting UDF: get_record
grunt> register '/usr/local/pig/piggybank.jar';
grunt>
grunt> a = LOAD
'/Users/danoyoung/Downloads/adwords_KeywordDailyReport_1-1-2012_daily' USING
org.apache.pig.piggybank.storage.XMLLoader('row') AS (doc:chararray);
grunt>
grunt> b = FOREACH a GENERATE FLATTEN(myfuncs.get_record(doc)) AS
(dw_date_marker:int,ad_network_ad_group_key:long,ad_network_keyword_key:long,firstpagecpc:int,qualityscore:int,cost:float,position:float);
grunt> describe b;
b: {dw_date_marker: int,ad_network_ad_group_key: long,ad_network_keyword_key:
long,firstpagecpc: int,qualityscore: int,cost: float,position: float}
grunt>
grunt> illustrate b;
2012-01-12 22:17:25,642 [main] INFO
org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting to
hadoop file system at: file:///
2012-01-12 22:17:25,846 [main] INFO
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MRCompiler - File
concatenation threshold: 100 optimistic? false
2012-01-12 22:17:25,860 [main] INFO
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MultiQueryOptimizer
- MR plan size before optimization: 1
2012-01-12 22:17:25,860 [main] INFO
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MultiQueryOptimizer
- MR plan size after optimization: 1
2012-01-12 22:17:25,870 [main] INFO org.apache.pig.tools.pigstats.ScriptState
- Pig script settings are added to the job
2012-01-12 22:17:25,887 [main] INFO
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler
- mapred.job.reduce.markreset.buffer.percent is not set, set to default 0.3
2012-01-12 22:17:26,161 [main] INFO
org.apache.hadoop.mapreduce.lib.input.FileInputFormat - Total input paths to
process : 1
2012-01-12 22:17:26,721 [main] INFO
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MRCompiler - File
concatenation threshold: 100 optimistic? false
2012-01-12 22:17:26,723 [main] INFO
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MultiQueryOptimizer
- MR plan size before optimization: 1
2012-01-12 22:17:26,723 [main] INFO
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MultiQueryOptimizer
- MR plan size after optimization: 1
2012-01-12 22:17:26,724 [main] INFO org.apache.pig.tools.pigstats.ScriptState
- Pig script settings are added to the job
2012-01-12 22:17:26,725 [main] INFO
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.JobControlCompiler
- mapred.job.reduce.markreset.buffer.percent is not set, set to default 0.3
java.lang.NullPointerException
at org.apache.pig.scripting.js.JsFunction.exec(JsFunction.java:200)
at
org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserFunc.getNext(POUserFunc.java:225)
at
org.apache.pig.backend.hadoop.executionengine.physicalLayer.expressionOperators.POUserFunc.getNext(POUserFunc.java:262)
at
org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator.getNext(PhysicalOperator.java:334)
at
org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach.processPlan(POForEach.java:332)
at
org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POForEach.getNext(POForEach.java:284)
at
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapBase.runPipeline(PigGenericMapBase.java:271)
at
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapBase.map(PigGenericMapBase.java:266)
at
org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.PigGenericMapBase.map(PigGenericMapBase.java:64)
at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144)
at
org.apache.pig.pen.LocalMapReduceSimulator.launchPig(LocalMapReduceSimulator.java:194)
at
org.apache.pig.pen.ExampleGenerator.getData(ExampleGenerator.java:257)
at
org.apache.pig.pen.ExampleGenerator.getData(ExampleGenerator.java:238)
at
org.apache.pig.pen.LineageTrimmingVisitor.init(LineageTrimmingVisitor.java:103)
at
org.apache.pig.pen.LineageTrimmingVisitor.<init>(LineageTrimmingVisitor.java:98)
at
org.apache.pig.pen.ExampleGenerator.getExamples(ExampleGenerator.java:166)
at org.apache.pig.PigServer.getExamples(PigServer.java:1202)
at
org.apache.pig.tools.grunt.GruntParser.processIllustrate(GruntParser.java:698)
at
org.apache.pig.tools.pigscript.parser.PigScriptParser.Illustrate(PigScriptParser.java:591)
at
org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:306)
at
org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:188)
at
org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:164)
at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:69)
at org.apache.pig.Main.run(Main.java:523)
at org.apache.pig.Main.main(Main.java:148)
2012-01-12 22:17:26,767 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR
2997: Encountered IOException. Exception : null
Details at logfile: /Users/danoyoung/projects/pig/pig_1326431817128.log
grunt>
Here's the log details:
Pig Stack Trace
---------------
ERROR 2997: Encountered IOException. Exception : null
java.io.IOException: Exception : null
at org.apache.pig.PigServer.getExamples(PigServer.java:1208)
at
org.apache.pig.tools.grunt.GruntParser.processIllustrate(GruntParser.java:698)
at
org.apache.pig.tools.pigscript.parser.PigScriptParser.Illustrate(PigScriptParser.java:591)
at
org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:306)
at
org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:188)
at
org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:164)
at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:69)
at org.apache.pig.Main.run(Main.java:523)
at org.apache.pig.Main.main(Main.java:148)
================================================================================
Here's the Javascript UDF:
get_record.outputSchema =
"dw_date_marker:int,ad_network_ad_group_key:long,ad_network_keyword_key:long,firstpagecpc:int,qualityscore:int,cost:float,position:float";
function get_record(doc){
var rec = new Object;
rec.dt = doc.substring(doc.search(/date=/ig)+6,doc.search(/\"
campaignid=/ig));
//rec.campaign_id =
doc.substring(doc.search(/campaignid=/ig)+12,doc.search(/\" adgroupid=/ig));
rec.ad_network_ad_group_key =
doc.substring(doc.search(/adgroupid=/ig)+11,doc.search(/\" keywordid=/ig));
rec.ad_network_keyword_key =
doc.substring(doc.search(/keywordid=/ig)+11,doc.search(/\" keyword=/ig));
rec.firstpagecpc =
doc.substring(doc.search(/firstpagecpc=/ig)+14,doc.search(/\"
qualityscore=/ig))/1000000;
rec.qualityscore =
doc.substring(doc.search(/qualityscore=/ig)+14,doc.search(/\" imps=/ig));
rec.cost = doc.substring(doc.search(/cost=/ig)+6,doc.search(/\"
pos=/ig))/1000000;
rec.position =
doc.substring(doc.search(/pos=/ig)+5,doc.search(/\"><\/row/ig));
rec.dw_date_marker = get_date_marker(rec.dt);
return {dw_date_marker:rec.dw_date_marker,
ad_network_ad_group_key:rec.ad_network_ad_group_key,
ad_network_keyword_key:rec.ad_network_keyword_key,
firstpagecpc:rec.firstpagecpc,
qualityscore:rec.qualityscore,
cost:rec.cost,
position:rec.position};
}
function get_date_marker(dt){
var dateMarkers = {
_2012_01_01:1204,
_2012_01_02:1205,
_2012_01_03:1206,
_2012_01_04:1207,
_2012_01_05:1208,
_2012_01_06:1209,
_2012_01_07:1210,
_2012_01_08:1211,
_2012_01_09:1212,
_2012_01_10:1213,
_2012_01_11:1214,
_2012_01_12:1215,
_2012_01_13:1216,
_2012_01_14:1217,
_2012_01_15:1218,
_2012_01_16:1219,
_2012_01_17:1220,
_2012_01_18:1221,
_2012_01_19:1222,
_2012_01_20:1223,
_2012_01_21:1224,
_2012_01_22:1225,
_2012_01_23:1226,
_2012_01_24:1227,
_2012_01_25:1228,
_2012_01_26:1229,
_2012_01_27:1230,
_2012_01_28:1231,
_2012_01_29:1232,
_2012_01_30:1233,
_2012_01_31:1234,
_2012_02_01:1235,
_2012_02_02:1236,
_2012_02_03:1237,
_2012_02_04:1238,
_2012_02_05:1239,
_2012_02_06:1240,
_2012_02_07:1241,
_2012_02_08:1242,
_2012_02_09:1243,
_2012_02_10:1244,
_2012_02_11:1245,
_2012_02_12:1246,
_2012_02_13:1247,
_2012_02_14:1248,
_2012_02_15:1249,
_2012_02_16:1250,
_2012_02_17:1251,
_2012_02_18:1252,
_2012_02_19:1253,
_2012_02_20:1254,
_2012_02_21:1255,
_2012_02_22:1256,
_2012_02_23:1257,
_2012_02_24:1258,
_2012_02_25:1259,
_2012_02_26:1260,
_2012_02_27:1261,
_2012_02_28:1262,
_2012_02_29:1263,
_2012_03_01:1264,
_2012_03_02:1265,
_2012_03_03:1266,
_2012_03_04:1267,
_2012_03_05:1268,
_2012_03_06:1269,
_2012_03_07:1270,
_2012_03_08:1271,
_2012_03_09:1272,
_2012_03_10:1273,
_2012_03_11:1274,
_2012_03_12:1275,
_2012_03_13:1276,
_2012_03_14:1277,
_2012_03_15:1278,
_2012_03_16:1279,
_2012_03_17:1280,
_2012_03_18:1281,
_2012_03_19:1282,
_2012_03_20:1283,
_2012_03_21:1284,
_2012_03_22:1285,
_2012_03_23:1286,
_2012_03_24:1287,
_2012_03_25:1288,
_2012_03_26:1289,
_2012_03_27:1290,
_2012_03_28:1291,
_2012_03_29:1292,
_2012_03_30:1293,
_2012_03_31:1294,
_2012_04_01:1295,
_2012_04_02:1296,
_2012_04_03:1297,
_2012_04_04:1298,
_2012_04_05:1299,
_2012_04_06:1300,
_2012_04_07:1301,
_2012_04_08:1302,
_2012_04_09:1303,
_2012_04_10:1304,
_2012_04_11:1305,
_2012_04_12:1306,
_2012_04_13:1307,
_2012_04_14:1308,
_2012_04_15:1309,
_2012_04_16:1310,
_2012_04_17:1311,
_2012_04_18:1312,
_2012_04_19:1313,
_2012_04_20:1314,
_2012_04_21:1315,
_2012_04_22:1316,
_2012_04_23:1317,
_2012_04_24:1318,
_2012_04_25:1319,
_2012_04_26:1320,
_2012_04_27:1321,
_2012_04_28:1322,
_2012_04_29:1323,
_2012_04_30:1324,
_2012_05_01:1325,
_2012_05_02:1326,
_2012_05_03:1327,
_2012_05_04:1328,
_2012_05_05:1329,
_2012_05_06:1330,
_2012_05_07:1331,
_2012_05_08:1332,
_2012_05_09:1333,
_2012_05_10:1334,
_2012_05_11:1335,
_2012_05_12:1336,
_2012_05_13:1337,
_2012_05_14:1338,
_2012_05_15:1339,
_2012_05_16:1340,
_2012_05_17:1341,
_2012_05_18:1342,
_2012_05_19:1343,
_2012_05_20:1344,
_2012_05_21:1345,
_2012_05_22:1346,
_2012_05_23:1347,
_2012_05_24:1348,
_2012_05_25:1349,
_2012_05_26:1350,
_2012_05_27:1351,
_2012_05_28:1352,
_2012_05_29:1353,
_2012_05_30:1354,
_2012_05_31:1355,
_2012_06_01:1356,
_2012_06_02:1357,
_2012_06_03:1358,
_2012_06_04:1359,
_2012_06_05:1360,
_2012_06_06:1361,
_2012_06_07:1362,
_2012_06_08:1363,
_2012_06_09:1364,
_2012_06_10:1365,
_2012_06_11:1366,
_2012_06_12:1367,
_2012_06_13:1368,
_2012_06_14:1369,
_2012_06_15:1370,
_2012_06_16:1371,
_2012_06_17:1372,
_2012_06_18:1373,
_2012_06_19:1374,
_2012_06_20:1375,
_2012_06_21:1376,
_2012_06_22:1377,
_2012_06_23:1378,
_2012_06_24:1379,
_2012_06_25:1380,
_2012_06_26:1381,
_2012_06_27:1382,
_2012_06_28:1383,
_2012_06_29:1384,
_2012_06_30:1385,
_2012_07_01:1386,
_2012_07_02:1387,
_2012_07_03:1388,
_2012_07_04:1389,
_2012_07_05:1390,
_2012_07_06:1391,
_2012_07_07:1392,
_2012_07_08:1393,
_2012_07_09:1394,
_2012_07_10:1395,
_2012_07_11:1396,
_2012_07_12:1397,
_2012_07_13:1398,
_2012_07_14:1399,
_2012_07_15:1400,
_2012_07_16:1401,
_2012_07_17:1402,
_2012_07_18:1403,
_2012_07_19:1404,
_2012_07_20:1405,
_2012_07_21:1406,
_2012_07_22:1407,
_2012_07_23:1408,
_2012_07_24:1409,
_2012_07_25:1410,
_2012_07_26:1411,
_2012_07_27:1412,
_2012_07_28:1413,
_2012_07_29:1414,
_2012_07_30:1415,
_2012_07_31:1416,
_2012_08_01:1417,
_2012_08_02:1418,
_2012_08_03:1419,
_2012_08_04:1420,
_2012_08_05:1421,
_2012_08_06:1422,
_2012_08_07:1423,
_2012_08_08:1424,
_2012_08_09:1425,
_2012_08_10:1426,
_2012_08_11:1427,
_2012_08_12:1428,
_2012_08_13:1429,
_2012_08_14:1430,
_2012_08_15:1431,
_2012_08_16:1432,
_2012_08_17:1433,
_2012_08_18:1434,
_2012_08_19:1435,
_2012_08_20:1436,
_2012_08_21:1437,
_2012_08_22:1438,
_2012_08_23:1439,
_2012_08_24:1440,
_2012_08_25:1441,
_2012_08_26:1442,
_2012_08_27:1443,
_2012_08_28:1444,
_2012_08_29:1445,
_2012_08_30:1446,
_2012_08_31:1447,
_2012_09_01:1448,
_2012_09_02:1449,
_2012_09_03:1450,
_2012_09_04:1451,
_2012_09_05:1452,
_2012_09_06:1453,
_2012_09_07:1454,
_2012_09_08:1455,
_2012_09_09:1456,
_2012_09_10:1457,
_2012_09_11:1458,
_2012_09_12:1459,
_2012_09_13:1460,
_2012_09_14:1461,
_2012_09_15:1462,
_2012_09_16:1463,
_2012_09_17:1464,
_2012_09_18:1465,
_2012_09_19:1466,
_2012_09_20:1467,
_2012_09_21:1468,
_2012_09_22:1469,
_2012_09_23:1470,
_2012_09_24:1471,
_2012_09_25:1472,
_2012_09_26:1473,
_2012_09_27:1474,
_2012_09_28:1475,
_2012_09_29:1476,
_2012_09_30:1477,
_2012_10_01:1478,
_2012_10_02:1479,
_2012_10_03:1480,
_2012_10_04:1481,
_2012_10_05:1482,
_2012_10_06:1483,
_2012_10_07:1484,
_2012_10_08:1485,
_2012_10_09:1486,
_2012_10_10:1487,
_2012_10_11:1488,
_2012_10_12:1489,
_2012_10_13:1490,
_2012_10_14:1491,
_2012_10_15:1492,
_2012_10_16:1493,
_2012_10_17:1494,
_2012_10_18:1495,
_2012_10_19:1496,
_2012_10_20:1497,
_2012_10_21:1498,
_2012_10_22:1499,
_2012_10_23:1500,
_2012_10_24:1501,
_2012_10_25:1502,
_2012_10_26:1503,
_2012_10_27:1504,
_2012_10_28:1505,
_2012_10_29:1506,
_2012_10_30:1507,
_2012_10_31:1508,
_2012_11_01:1509,
_2012_11_02:1510,
_2012_11_03:1511,
_2012_11_04:1512,
_2012_11_05:1513,
_2012_11_06:1514,
_2012_11_07:1515,
_2012_11_08:1516,
_2012_11_09:1517,
_2012_11_10:1518,
_2012_11_11:1519,
_2012_11_12:1520,
_2012_11_13:1521,
_2012_11_14:1522,
_2012_11_15:1523,
_2012_11_16:1524,
_2012_11_17:1525,
_2012_11_18:1526,
_2012_11_19:1527,
_2012_11_20:1528,
_2012_11_21:1529,
_2012_11_22:1530,
_2012_11_23:1531,
_2012_11_24:1532,
_2012_11_25:1533,
_2012_11_26:1534,
_2012_11_27:1535,
_2012_11_28:1536,
_2012_11_29:1537,
_2012_11_30:1538,
_2012_12_01:1539,
_2012_12_02:1540,
_2012_12_03:1541,
_2012_12_04:1542,
_2012_12_05:1543,
_2012_12_06:1544,
_2012_12_07:1545,
_2012_12_08:1546,
_2012_12_09:1547,
_2012_12_10:1548,
_2012_12_11:1549,
_2012_12_12:1550,
_2012_12_13:1551,
_2012_12_14:1552,
_2012_12_15:1553,
_2012_12_16:1554,
_2012_12_17:1555,
_2012_12_18:1556,
_2012_12_19:1557,
_2012_12_20:1558,
_2012_12_21:1559,
_2012_12_22:1560,
_2012_12_23:1561,
_2012_12_24:1562,
_2012_12_25:1563,
_2012_12_26:1564,
_2012_12_27:1565,
_2012_12_28:1566,
_2012_12_29:1567,
_2012_12_30:1568,
_2012_12_31:1569};
var rec = new Object;
rec.dt = dt.replace(/-/g, "_");
rec.date_marker = dateMarkers["_" + rec.dt];
return rec.date_marker;
}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira