datetime - 解析Pig中的自定义日期时间

标签 datetime hadoop apache-pig

我有以下字符串"2014-12-15 18:20:48",但当我解析为datetime时:

A = LOAD 'input.txt' AS (mydate:chararray);
B = FOREACH A GENERATE ToDate(mydate) as datetime;

我收到此错误:"2014-12-15 18:20:48" is malformed at " 18:20:48"另外,当我指定格式ToDate(mydate, 'yyyy-MM-dd HH:mm:ss');时,日期时间将转换为"2014-12-15T18:20:48.000Z"而不是"2014-12-15 18:20:48"。我如何解决这个问题,以便给我"2014-12-15 18:20:48"类型datetime?

最佳答案

如果我们将字符串传递给ToDate函数,则该字符串应为iosstring格式(引用[1])。

ToDate(iosstring)

在第一种情况下,输入字符串不是iosstring格式(缺少T分隔符,表示时间元素的开始)。如果输入字符串是
iosstring格式(引用[1]),它将起作用。

在第二种情况下,您正在调用ToDate的重载方法:

ToDate(用户字符串,格式)

所有ToDate方法的返回类型都是DateTime对象。

如果要获取字符串中的日期,并且需要其他任何格式的日期以进行进一步处理,则必须在ToDate()方法之上使用ToString()方法来获取日期。
所需的格式。

引用:

  • iostring格式:http://www.w3.org/TR/NOTE-datetime
  • ToDate():http://pig.apache.org/docs/r0.12.0/func.html#to-date
  • ToString():http://pig.apache.org/docs/r0.12.0/func.html#to-string
  • 关于datetime - 解析Pig中的自定义日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30181450/

    相关文章:

    MYSQL 将日期和时间字段合并为日期时间值

    datetime - 返回给定年份复活节日期的函数

    java - 未处理的内部错误。 org.apache.hadoop.mapred.jobcontrol.JobControl.addJob

    apache-pig - 我可以在 Pig 脚本中将参数传递给 UDF 吗?

    hadoop - pig 参数替换

    PHP DateTime::createFromFormat 不适用于带时区的时间格式

    日期时间上的 MySQL 索引不与嵌套查询一起使用

    xml - 在 Hadoop 中创建许多小的 XML 文件

    hadoop - 在 hadoop 2.3.0-cdh-5.0 上的 Giraph1.1.0 上执行示例显示以下错误

    windows-7 - 32位操作系统上的Apache Hive