Google bigquery 使用数据流将日期类型加载到Google BigQuery

Google bigquery 使用数据流将日期类型加载到Google BigQuery,google-bigquery,google-cloud-dataflow,Google Bigquery,Google Cloud Dataflow,上下文 我对谷歌云平台相当陌生,我正在尝试谷歌数据流。我读取CSV文件并模拟流数据。CSV行发布到主题(PubSub)中,并数据流读取该行并将数据插入到BigQuery表中 问题 当我的文件包含类型STRING、FLOAT、INTEGER时,我的过程成功完成,数据加载到BigQuery。但如果我在进程中添加其中一种类型:DATETIME,TIME,DATE,它总是失败。有很多代码示例,但我没有找到显示如何处理它的代码示例 数据示例 2017-01-23-将其加载到日期类型 14:10:12-将其

上下文

我对谷歌云平台相当陌生,我正在尝试谷歌数据流。我读取CSV文件并模拟流数据。CSV行发布到主题(PubSub)中,并数据流读取该行并将数据插入到BigQuery表中

问题

当我的文件包含类型STRING、FLOAT、INTEGER时,我的过程成功完成,数据加载到BigQuery。但如果我在进程中添加其中一种类型:DATETIME,TIME,DATE,它总是失败。有很多代码示例,但我没有找到显示如何处理它的代码示例

数据示例

2017-01-23
-将其加载到日期类型

14:10:12
-将其加载到时间类型中

我希望你们能帮我…

我尝试了几件事:

//1
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  String dateInString = info.getEventDate();
  Date date = sdf.parse(dateInString);

row.set("EventDate", date);


//2
row.set("EventDate", new DateTime("2017-01-23")); 


//3
public String getEventDate() {
return get(Field.EventDate);  }
...
...
...
row.set("EventDate", info.getEventDate());


//4
private static DateTimeFormatter dmt = DateTimeFormat.forPattern("yyyy-MM-dd");
....
....
....
DateTime ds = dmt.parseDateTime(info.getEventDate());

请提供有关您的代码的更多详细信息以及故障的完整打印输出。仅仅知道管道失败不足以帮助您进行调试。我们在BQ中使用时间戳作为日期格式。在从数据流向BQ添加数据时,我们将日期作为字符串,并使用特定的时间戳格式yyyy-MM-dd hh:MM:ss.SSS。这对我们建造的所有管道都非常有效。希望这会有所帮助。那么,您找到要发送给BigQuery的日期和日期时间格式的POJO了吗?请提供您收到的错误消息的完整打印输出。不清楚代码的哪一部分出现了故障。如果您在数据流之外的本地计算机上执行DateTime解析代码,故障是否会重现?嗨,Scott,谢谢您的回复。代码变大,以便在此处共享。我向你发送LinkedIn邀请。我将通过电子邮件发送给您。请发送到数据流-feedback@google.com相反,嗨,斯科特,我用同样的帖子主题-加载日期类型发送电子邮件到Google BigQueryDataflow@HaimB你能解决你的问题吗?如果是这样,建议将解决方案作为更好地帮助社区的答案发布。如果不是,建议用您遇到的错误片段更新您的原始问题。