我很难让BigQuery正确地从avro文件加载时间戳。
avro文件的日期列存储为长,带有逻辑类型时间戳micros。根据文档,BigQuery应该将其存储为时间戳数据类型。我还尝试了逻辑类型的时间戳毫秒。
数据存储在avro中,如下所示:
{'id': '<masked>', '<masked>': '<masked>', 'tm': 1553990400000, '<masked>': <masked>, '<masked>': <masked>, 'created': 1597056958864}
tm和创建的字段分别为longs、2019-03-31T00:00:00Z和2020-08-10T11:50:58.986816592Z。
avro的模式为
{"type":"record","name":"SomeMessage","namespace":"com.df",
"fields":
[{"name":"id","type":"string"},
{"name":"<masked>","type":"string"},
{"name":"tm","type":"long","logicalType":"timestamp-micros"},
{"name":"<masked>","type":"int"},
{"name":"<masked>","type":"float"},
{"name":"created","type":"long","logicalType":"timestamp-micros"}]}";
当通过bq加载导入到BigQuery时,记录最终如下所示:
<masked> <masked> tm <masked> <masked> created
________________________________________________________________________________________________________
<masked> | <masked> | 1970-01-18 23:39:50.400 UTC | <masked> | <masked> | 1970-01-19 11:37:36.958864 UTC
________________________________________________________________________________________________________
使用的导入命令是:
bq load --source_format=AVRO --use_avro_logical_types some_dataset.some_table "gs://some-bucket/some.avro"
BigQuery中的时间戳与avro中提供的实际值相去甚远。
有人对如何正确地做到这一点有什么想法吗?
我发现avro模式实际上是错误的。时间戳字段应该是这样的:
{"name":"created","type":{"type":"long", "logicalType":"timestamp-millis"}}
本文向大家介绍Java将日期类型Date时间戳转换为MongoDB的时间类型数据,包括了Java将日期类型Date时间戳转换为MongoDB的时间类型数据的使用技巧和注意事项,需要的朋友参考一下 存了一个时间类型(Date)的数据到mongo数据库中,但是前台显示的是一串数字。继而引发了如下问题: Java里面如何把 时间戳 1477387464495 转换为 2016-10-25 17:24:2
嗨,我有一个android应用程序,使用返回Int(或Long)类型的时间戳。我想将其转换为人类阅读器日期时间(根据设备时区) 例如,1175714200转换为GMT:2007年4月4日星期三19:16:40 GMT您的时区:2007年4月5日,3:16:40 AM GMT 8:00 我使用这个函数进行转换,但似乎没有返回正确的结果(所有结果都像(15/01/1970 04:04:25),这是不正
我试图找出如何在Kotlin中将转换为,这在Java中非常简单,但我在Kotlin中找不到任何等效的。 例如:历元时间戳(1970-01-01以来的秒数)== 在Kotlin中是否有解决方案,或者我是否必须在Kotln中使用Java语法?请给我一个简单的例子来说明如何解决这个问题。提前谢谢。 这个链接不是我问题的答案
问题内容: 我需要将格式为“ dd / mm / yyyy”的字符串转换为长型。为了将值传递给android中的calendarProvider。 目前我有: 我需要: 我已经尝试过使用SimpleDateFormat,但是在获取正确的类型时遇到了问题。任何帮助将非常感激。 问题答案: 您可以使用以下代码从字符串日期中以“ dd / mm / yyyy”格式获取长值(自格林尼治标准时间1970年1
我有一个ISO 8601日期字符串,格式如下: 我需要使用日期字符串作为我在BigQuery中运行的查询的一部分。我正在尝试使用<code>com.google.cloud.bigquery。QueryParameterValue类将其转换为类型为的,如下所示: 这给了我一个错误: Eclipse中时间戳方法的内联帮助声明: 如何将 转换为所需的格式?有没有更好的方法可以使用来处理从ISO 860
Code A可以将长值转换为日期值,就像2018.01.10一样 > 我希望得到日期时间值 ,如 2018.01.10 23:11,我该如何使用 Kotlin? 我希望将当前时间转换为长值,我该如何使用Kotlin? 谢谢! 代码A