【问题标题】:Dataprep: creating a column to converts to Big Query timestamp typeDataprep:创建要转换为 Big Query 时间戳类型的列
【发布时间】:2018-07-01 00:41:34
【问题描述】:

我一直在疯狂地尝试从现有的 Datetime 列类型创建一个列,该列将“发布”到 Big Query“时间戳”列。我已经尝试过 Dataprep 的函数“unixtime”和“unixtimeformat”函数的所有排列,但都无济于事:我总是让 Dataprep 发布到“字符串”或“日期时间”列类型。

更新:我的工作流程如下:GCS .csv 文件 ==> Dataprep ==> BQ。

请帮忙!! 谢谢!!!

解决方案:Trifacta(即 Cloud Dataprep)的人员提供了解决方案。创建一个包含“Timestamp”类型列(假设名为“dt”)的 BQ 表,并使用 Dataprep 的“Append”发布功能以及源列类型“Datetime”(同名“dt”)。

【问题讨论】:

标签: google-cloud-platform google-cloud-dataprep


【解决方案1】:

检查Cloud Dataprep Supported Data Types,"timestamp" 数据类型不被支持。

但是,如果 Dataprep 中的列是 Datetime (timestamp) 类型,那么当您写入 BigQuery 时,它将保持 Timestamp 类型(请参阅BigQuery Data Type Conversions

这是一个虚拟示例:

  1. 从 BigQuery 将数据集导入具有架构的表。

  1. 添加配方并运行作业:

  1. 将结果导出到 GCS 并将其加载回 BigQuery。
    • “dataformatt_timestamp_col”是STRING类型,但是
    • “datetime_col”可以“发布”到 Big Query TIMESTAMP 列。

【讨论】:

  • 我知道文档是怎么说的。您是否亲自尝试过完成这项工作?如果是,请解释。
  • 我不明白这如何回答我的问题。我需要 Dataprep 将我的 Datetime 列之一导出到 BQ Timestamp 列。
  • 嗨@jldupont,我的意思是,Dataprep 中的 DATETIME 列“datatime_col”已发布到 BQ 中的 TIMESTAMP 列。你能在这里分享你的 GCS .csv 文件的一行吗?
【解决方案2】:

不是一个理想的解决方案,但对我的情况有所帮助:

  1. 创建 BQ 表 (oldTable),其值为日期时间格式(例如命名为 event_time
  2. 通过选择所有数据创建表(newTable),并将event_time转换为时间戳:
CREATE TABLE
  newTable AS (
  SELECT
    col1,
    col2,
    ...,
    timestamp(event_time) as event_time,
    ...,
    colN
  FROM
    oldTable
  );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-14
    • 2012-08-19
    • 1970-01-01
    相关资源
    最近更新 更多