Having an issue with casting knowledge to datetime with pig. Importing the next dataset, tab delimited, I added the t as an example.
5000001 t 1133938 t 1273719 t 2008-06-01 00:03:35.0
I need to take the final worth (2008-06-01 00:03:35.0) and extract the month. Loading it as a DateTime produces a clean discipline. So I need to import it as a chararray after which use toDate to show it into dateTime discipline that I can use getMonth on.
after I attempt within the shell I get this:
grunt> orders = load '/dwelling/cloudera/Desktop/orders1' using PigStorage('t') AS (orderID:int, cusID:int, productId:chararray, time:chararray);
grunt> to_date = FOREACH orders GENERATE toDate(time,'yyyy-MM-dd HH:mm:ss.S') as (dTime:DateTime), cusID;
2017-04-19 01:13:46,206 fundamental ERROR org.apache.pig.instruments.grunt.Grunt - ERROR 1070: Could not resolve toDate using imports: , java.lang., org.apache.pig.builtin., org.apache.pig.impl.builtin.
Details at logfile: /dwelling/cloudera/pig_1492588751037.log
The log file accommodates this:
ERROR 1070: Could not resolve toDate using imports: , java.lang.,
org.apache.pig.builtin., org.apache.pig.impl.builtin.Failed to parse: Pig script did not parse: <line 9, column 34>
Failed to generate logical plan. Nested exception:
org.apache.pig.backend.executionengine.ExecException: ERROR 1070:
Could not resolve toDate using imports: , java.lang.,
org.apache.pig.builtin., org.apache.pig.impl.builtin. at
org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:196)
at org.apache.pig.PigServer$Graph.validateQuery(PigServer.java:1660)
at org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1633)
at org.apache.pig.PigServer.registerQuery(PigServer.java:587) at
org.apache.pig.instruments.grunt.GruntParser.course ofPig(GruntParser.java:1093)
at
org.apache.pig.instruments.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:501)
at
org.apache.pig.instruments.grunt.GruntParser.parseStopOnError(GruntParser.java:198)
at
org.apache.pig.instruments.grunt.GruntParser.parseStopOnError(GruntParser.java:173)
at org.apache.pig.instruments.grunt.Grunt.run(Grunt.java:69) at
org.apache.pig.Main.run(Main.java:547) at
org.apache.pig.Main.fundamental(Main.java:158) at
solar.replicate.NativeMethodAccessorImpl.invoke0(Native Method) at
solar.replicate.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
solar.replicate.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.replicate.Method.invoke(Method.java:606) at
org.apache.hadoop.util.RunJar.run(RunJar.java:221) at
org.apache.hadoop.util.RunJar.fundamental(RunJar.java:136) Caused by: <line
9, column 34> Failed to generate logical plan. Nested exception:
org.apache.pig.backend.executionengine.ExecException: ERROR 1070:
Could not resolve toDate using imports: , java.lang.,
org.apache.pig.builtin., org.apache.pig.impl.builtin. at
org.apache.pig.parser.LogicalPlanBuilder.buildUDF(LogicalPlanBuilder.java:1507)
at
org.apache.pig.parser.LogicalPlanGenerator.func_eval(LogicalPlanGenerator.java:9372)
at
org.apache.pig.parser.LogicalPlanGenerator.projectable_expr(LogicalPlanGenerator.java:11051)
at
org.apache.pig.parser.LogicalPlanGenerator.var_expr(LogicalPlanGenerator.java:10810)
at
org.apache.pig.parser.LogicalPlanGenerator.expr(LogicalPlanGenerator.java:10159)
at
org.apache.pig.parser.LogicalPlanGenerator.flatten_generated_item(LogicalPlanGenerator.java:7488)
at
org.apache.pig.parser.LogicalPlanGenerator.generate_clause(LogicalPlanGenerator.java:17590)
at
org.apache.pig.parser.LogicalPlanGenerator.foreach_plan(LogicalPlanGenerator.java:15982)
at
org.apache.pig.parser.LogicalPlanGenerator.foreach_clause(LogicalPlanGenerator.java:15849)
at
org.apache.pig.parser.LogicalPlanGenerator.op_clause(LogicalPlanGenerator.java:1933)
at
org.apache.pig.parser.LogicalPlanGenerator.general_statement(LogicalPlanGenerator.java:1102)
at
org.apache.pig.parser.LogicalPlanGenerator.assertion(LogicalPlanGenerator.java:560)
at
org.apache.pig.parser.LogicalPlanGenerator.question(LogicalPlanGenerator.java:421)
at
org.apache.pig.parser.QueryParserDriver.parse(QueryParserDriver.java:188)
… 16 extra Caused by:
org.apache.pig.backend.executionengine.ExecException: ERROR 1070:
Could not resolve toDate using imports: , java.lang.,
org.apache.pig.builtin., org.apache.pig.impl.builtin. at
org.apache.pig.impl.PigContext.resolveClassName(PigContext.java:653)
at
org.apache.pig.impl.PigContext.getClassForAlias(PigContext.java:769)
at
org.apache.pig.parser.LogicalPlanBuilder.buildUDF(LogicalPlanBuilder.java:1504)
… 29 extra
Pig perform names are case-sensitive. It is ToDate()
.
grunt> to_date = FOREACH orders GENERATE ToDate(time,'yyyy-MM-dd HH:mm:ss.S') as (dTime:DateTime), cusID;