【问题标题】:Cassandra/Apache Nifi: Unable to coerce 'yyyy-MM-dd HH' to a formatted date (long)Cassandra/Apache Nifi:无法将“yyyy-MM-dd HH”强制转换为格式化日期(长)
【发布时间】:2018-05-14 08:54:04
【问题描述】:

我在使用 Apache Nifi 转换 cassandra 中的常规时间戳时遇到了一些问题。

我的用例如下:

我有一个 csv 文件,其中的日期看起来像这样 ('2015010109'),我想通过转换此字符串 ('2015010109 ') 到正确的格式:2015-01-01 09:00 -> yyyy/MM/dd HH:mm (我并不完全需要分钟,但我猜对以后使用更有用)

到目前为止,当我尝试将此字符串转换为时间戳时,我在 UpdateAttribute 处理器中获得了此属性:

日期:${csvfiledate:toDate("yyyyMMddHH","GMT"):format("yyyy-MM-dd-HH")}

但是我的 PutCassandraQL 处理器出现错误:无法将“2015-01-01-09”强制转换为格式化日期(长)。

我尝试了一些东西

date : ${csvfiledate:toDate("yyyyMMddHH","GMT"):format("yyyy-MM-dd HH-mmZ")} 也一样,但同样的错误正在发生。

您似乎需要为 cassandra 指定特定的时间戳类型,如下所示: http://docs.datastax.com/en/archived/cql/3.0/cql/cql_reference/timestamp_type_r.html 但是目前还不行,也许你得到了一些提示。

提前致谢。

【问题讨论】:

  • 检查this。我看到你的格式是HH-mm,它必须是HH:mm。也试试这个:${csvfiledate:toDate("yyyyMMddHH","GMT"):format("yyyy-MM-dd HH:mm")}Z

标签: date cassandra formatting timestamp apache-nifi


【解决方案1】:

你把它弄反了..

toDate参数用于描述如何解析日期。 format 函数用于描述日期输出应该如何。所以表达式应该是:

${csvfiledate:toDate('yyyy-MM-dd-HH','GMT'):format('yyyyMMddHH')}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多