【问题标题】:BigQuery coud not parse into datetime from a csv fileBigQuery 无法从 csv 文件解析为日期时间
【发布时间】:2020-06-02 15:12:20
【问题描述】:

在将数据加载到 bigquery 时,我提供了自己的架构以避免与数据类型混淆。即使是现在 BQ 也无法从日期时间格式加载值。虽然它们非常简单:'1/9/2014 5:26' 以下是完整的错误消息:

无法解析 '1/9/2014 5:26'

我认为这可能是因为一些错误的值,但已经检查了该列并且没有错误的值。它在第一个错误上给出了错误,因此它无法毫无疑问地解析该值。值得注意的是,这些值能够被解析为字符串类型,而不仅仅是日期或日期时间类型。

【问题讨论】:

  • 您是否尝试加载为字符串,然后在 BigQuery 中进行解析?您的数据示例可能有助于重现问题。还记得required format
  • @EnriqueZetina 给出的示例有问题:带有短语:无法解析 '1/9/2014 5:26'

标签: datetime google-bigquery


【解决方案1】:

将其加载为字符串,使用 PARSE_DATE,并将其写为新表:

CREATE OR REPLACE TABLE  dataset.new_table AS 
SELECT
   *,
   PARSE_DATE("%m/%d/%y %h:%M", str_col) AS date
FROM
   dataset.loaded_table

【讨论】:

  • 这很好,但想知道为什么它默认不解析它。 datetime 类型是否有格式要求?
  • 您的数据可能源自英国,即 2002 年 6 月 3 日是 3 月 6 日,也可能源自美国,即 2020 年 6 月 3 日是 6 月 3 日。BigQuery 如何可靠地知道?通过指定格式,您可以明确是 MM/DD 还是 DD/MM 等等。如果您的日期在 en.wikipedia.org/wiki/ISO_8601 中没有这样的歧义,那么 BigQuery 会自动解析它。
猜你喜欢
  • 2020-04-20
  • 2016-10-07
  • 1970-01-01
  • 2016-12-15
  • 1970-01-01
  • 2020-08-05
  • 2017-05-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多