当前位置: 首页 > 知识库问答 >
问题:

Apache NiFi中的微秒解析

谭高峯
2023-03-14

我想通过CSVRecordReader将以下包含以微秒为单位的时间戳的CSV内容转换为通过AvroRecordSetWriter的AvroRecord:

timestamp,value    
1551784149996000,1

我使用以下Avro模式

{
  "name": "TestRecord",
  "type": "record",
  "fields": [
    {
      "name": "timestamp",
      "type" :
      {
        "type" : "long",
        "logicalType" : "timestamp-micros"
      }
    },
    {
      "name": "value",
      "type": "long"
    }
  ]
}

但是CSVRecordReader似乎将微秒解释为毫秒,因此AvorRecordSetWriter的输出包含另外三个零:

1551784750036000000

时间戳字段将假定为自epoch(格林威治时间1970年1月1日午夜)以来的毫秒数https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-record-serialization-services-nar/1.9.0/org.apache.nifi.csv.csvreader/index.html

也许以下即时ISO格式不知何故被任何NiFi RecordReader支持?

2019-03-01T13:12:34.567123Z

共有1个答案

衡修洁
2023-03-14

最简单的方法可能是在convertrecord之后(如果需要保持微秒精度)或在convertrecord之前(如果只需要毫秒精度)使用updateRecord处理器来修剪该字段的最后三个数字。

您可以使用记录路径函数substringbeforelast通过substringbeforelast(时间戳,'000')修剪。

 类似资料:
  • 2015-05-09 00:10:23.999750900//后9位表示纳秒 当通过模式解析时 YYYY-MM-DD HH:MM:SS.SSSSSSS//9“s”符号 null null 有没有其他方法可以通过只向标准实现提供一个模式来获得正确的解决方案,而不需要任何其他代码修改或字符串操作?

  • 问题内容: JavaScript中是否有具有微秒分辨率的计时功能? 我知道Chrome的timer.js,希望能够为其他友好的浏览器提供解决方案,例如Firefox,Safari,Opera,Epiphany,Konqueror等。我对支持任何IE均不感兴趣,但可以提供包括 IE 在内的_ 答案受欢迎的。 (鉴于JS中毫秒级计时的准确性很差,因此我不屏息!) 更新:timer.js宣传微秒分辨率,

  • 两个时间戳的示例 困难的部分原因是我认为没有类似的包来处理它。我不确定是否需要使用正则表达式来提取秒,然后将纳秒转换为毫秒。我愿意接受任何建议。 另外,您建议如何处理?我想我应该使用,然后像这样的包可以解析时间戳,甚至可以达到纳秒级的精度?

  • 问题内容: 我使用Scala将PostgreSQL表导入到spark作为数据框。数据框看起来像 我正在将此数据帧转换为log_dt的数据格式为。为此,我使用了以下代码,使用函数将log_dt转换为时间戳格式。 当我使用命令打印以打印tablereader1数据帧时,得到以下结果 如何保留微秒作为时间戳的一部分?任何建议表示赞赏。 问题答案: 毫秒 您可以使用接受Java SimpleDateFor

  • 问题内容: 我正在使用golang的go-ping(https://github.com/sparrc/go- ping )库进行无特权的ICMP ping。 通过运行此命令,我得到的延迟是毫秒,抖动是微秒。我想让两个单位都等于毫秒,因此当我执行或(将微秒转换为毫秒)时,得到的抖动是纳秒级的:(。有什么办法可以使延迟和抖动都达到相同的单位毫秒。 问题答案: 编号为 是具有作为其基础类型的类型,该类

  • 这个问题我已经研究了一段时间,但我只能得到秒数,下面是给我的说明:编写一个程序,从代表纳秒数的标准输入中读取一个非负整数。然后,程序编写一行输出,给出等效的天、小时、分钟、秒、毫秒、微秒和纳秒的数量。例如,输入为123456789123456789。则输出为:123456789123456789纳秒等于1428天、21小时、33分钟、9秒、123毫秒、456微秒和789纳秒。这是我写的: }