[ 
https://issues.apache.org/jira/browse/SPARK-6385?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14378689#comment-14378689
 ] 

Michael Armbrust commented on SPARK-6385:
-----------------------------------------

[~bruun] I think all you need to do is add another S to the format spec.

{code}
scala>       val ISO8601GMT: SimpleDateFormat = new SimpleDateFormat( 
"yyyy-MM-dd'T'HH:mm:ss.SSSz" )
ISO8601GMT: java.text.SimpleDateFormat = java.text.SimpleDateFormat@8a9df61b

scala> ISO8601GMT.parse("2015-02-02T00:00:07.900GMT-00:00")
res0: java.util.Date = Sun Feb 01 16:00:07 PST 2015

scala> ISO8601GMT.parse("2015-02-02T00:00:07.9000GMT-00:00")
java.text.ParseException: Unparseable date: "2015-02-02T00:00:07.9000GMT-00:00"
        at java.text.DateFormat.parse(DateFormat.java:357)
        at .<init>(<console>:10)
        at .<clinit>(<console>)
        at .<init>(<console>:7)
        at .<clinit>(<console>)
        at $print(<console>)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.call(IMain.scala:734)
        at scala.tools.nsc.interpreter.IMain$Request.loadAndRun(IMain.scala:983)
        at scala.tools.nsc.interpreter.IMain.loadAndRunReq$1(IMain.scala:573)
        at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:604)
        at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:568)
        at scala.tools.nsc.interpreter.ILoop.reallyInterpret$1(ILoop.scala:756)
        at 
scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:801)
        at scala.tools.nsc.interpreter.ILoop.command(ILoop.scala:713)
        at scala.tools.nsc.interpreter.ILoop.processLine$1(ILoop.scala:577)
        at scala.tools.nsc.interpreter.ILoop.innerLoop$1(ILoop.scala:584)
        at scala.tools.nsc.interpreter.ILoop.loop(ILoop.scala:587)
        at 
scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply$mcZ$sp(ILoop.scala:878)
        at 
scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:833)
        at 
scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:833)
        at 
scala.tools.nsc.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:135)
        at scala.tools.nsc.interpreter.ILoop.process(ILoop.scala:833)
        at 
scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:83)
        at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:96)
        at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:105)
        at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)


scala>       val ISO8601GMT: SimpleDateFormat = new SimpleDateFormat( 
"yyyy-MM-dd'T'HH:mm:ss.SSSSz" )
ISO8601GMT: java.text.SimpleDateFormat = java.text.SimpleDateFormat@c920c906

scala> ISO8601GMT.parse("2015-02-02T00:00:07.9000GMT-00:00")
res2: java.util.Date = Sun Feb 01 16:00:16 PST 2015

scala> ISO8601GMT.parse("2015-02-02T00:00:07.900GMT-00:00")
res3: java.util.Date = Sun Feb 01 16:00:07 PST 2015
{code}

> ISO 8601 timestamp parsing does not support arbitrary precision second 
> fractions
> --------------------------------------------------------------------------------
>
>                 Key: SPARK-6385
>                 URL: https://issues.apache.org/jira/browse/SPARK-6385
>             Project: Spark
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 1.2.1
>            Reporter: Nick Bruun
>            Priority: Minor
>
> The ISO 8601 timestamp parsing implemented as a resolution to SPARK-4149 does 
> not support arbitrary precision fractions of seconds, only millisecond 
> precision. Parsing {{2015-02-02T00:00:07.900GMT-00:00}} will succeed, while 
> {{2015-02-02T00:00:07.9000GMT-00:00}} will fail.
> The issue is caused by the fixed precision of the parsed format in 
> [DataTypeConversions.scala#L66|https://github.com/apache/spark/blob/84acd08e0886aa23195f35837c15c09aa7804aff/sql/catalyst/src/main/scala/org/apache/spark/sql/types/DataTypeConversions.scala#L66].
>  I'm willing to implement a fix, but pointers on the direction would be 
> appreciated.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org

Reply via email to