首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Java中定义Avro模式,如何处理时间戳或日期值?

问在Java中定义Avro模式,如何处理时间戳或日期值?
EN

Stack Overflow用户
提问于 2019-01-04 12:30:59
回答 1查看 1.2K关注 0票数 1

我有一个beam管道,它获取json数据,解析它,然后将其作为拼接文件写入GCS存储桶中。在Java中定义Avro模式时,我不知道如何处理日期和时间戳。它不提供日期或类似日期的选项。只有基本类型。现在一切正常,但是我的date仍然是一个字符串。对于如何在Avro schema对象中定义日期/时间戳以及如何将其作为Java对象传递,有什么建议吗?

代码语言:javascript
复制
static final Schema SCHEMA = SchemaBuilder.record("Record")
.namespace("com.foo").fields().requiredString("val1")
.requiredString("val2").requiredString("timestamp").endRecord();

示例时间戳:

代码语言:javascript
复制
String timestamp = "2018-12-06T21:22:35.700Z";
EN

回答 1

Stack Overflow用户

发布于 2019-01-04 14:22:44

这里没有唯一的答案。这取决于您的用例的具体情况。

你首先是以字符串的形式接收它们,所以正如@BSeitkazin提到的那样,将它们保存在字符串中可能是完全合理的,直到你真正需要它们作为日期/时间戳。

或者你可以存储millis,或者任何其他方便你的方式。

看看Avro,日期似乎是supported there since 1.8.0 (当前的光束软件开发工具包depends on 1.8.2)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54033149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档