我有一个接收json数据的光束管道,对其进行解析,然后将其作为实木复合地板文件写入GCS存储桶。在Java中定义Avro模式时,我不知道如何处理日期和时间戳。它不提供日期或类似选项。仅原始体。现在一切正常,但我的约会日期保持不变。有人对在Avro模式对象以及Java对象中将日期/时间戳定义为日期传递任何建议吗?
static final Schema SCHEMA = SchemaBuilder.record("Record")
.namespace("com.foo").fields().requiredString("val1")
.requiredString("val2").requiredString("timestamp").endRecord();
示例时间戳:
String timestamp = "2018-12-06T21:22:35.700Z";
答案 0 :(得分:0)
这里没有一个答案。这取决于您的用例的具体情况。
首先,您将它们作为字符串接收,因此@BSeitkazin提到,将它们保留在字符串中,直到您真正需要它们作为日期/时间戳,这是完全合理的。
或者您可以存储millis或任何其他方便的方式。
看着Avro,日期似乎是supported there since 1.8.0(当前的Beam SDK depends on 1.8.2)。