Google cloud platform Dataprep将str yyyymmdd date列更改为datetime列

Google cloud platform Dataprep将str yyyymmdd date列更改为datetime列,google-cloud-platform,google-cloud-dataprep,Google Cloud Platform,Google Cloud Dataprep,我在Dataprep:yyyymmdd中有一个字符串格式的日期列。我希望它成为datetime对象。我应该应用哪个函数/转换来自动实现此结果?在这种情况下,实际上根本不需要应用转换,只需将列类型更改为日期/时间并选择适当的格式选项即可 注意:这是Dataprep中最不直观的部分之一,因为在本例中,您必须选择不正确的格式yy mm dd,然后才能深入到正确的格式yyyymmdd 下面是日期/时间类型窗口的屏幕截图来说明这一点: 虽然它是非直观的,但这将在将来的操作中正确地将该列视为日期,包括在导

我在Dataprep:yyyymmdd中有一个字符串格式的日期列。我希望它成为datetime对象。我应该应用哪个函数/转换来自动实现此结果?

在这种情况下,实际上根本不需要应用转换,只需将列类型更改为日期/时间并选择适当的格式选项即可

注意:这是Dataprep中最不直观的部分之一,因为在本例中,您必须选择不正确的格式yy mm dd,然后才能深入到正确的格式yyyymmdd

下面是日期/时间类型窗口的屏幕截图来说明这一点:

虽然它是非直观的,但这将在将来的操作中正确地将该列视为日期,包括在导出操作(例如BigQuery)中指定正确的类型

通过UI,这将生成以下Wrangle脚本:

settype col: YourDateCol customType: 'Datetime','yy-mm-dd','yyyymmdd' type: custom
根据报告,这也应该起作用,而且更加简洁:

settype col: YourDateCol type: 'Datetime','yy-mm-dd','yyyymmdd'
请注意,如果确实需要在函数上下文中执行此操作,则可以使用//提取日期部分,并将其传递给or函数以构造datetime对象。正如您可能已经发现的,如果源列不是Datetime类型,则将返回NULL


不过,从性能的角度来看,对于大型数据集来说,只更改或创建具有正确类型的新列可能比在这么多行上执行这些额外操作要高效得多。

谢谢。事实上,正如我所看到的那样,这个列表并不直观,但却找不到我的选择。在哪里可以访问库项的初始争吵脚本?我问这个问题的原因是,我希望某些数据集始终具有相同的Wrangle脚本,而不是每次将其放入流时都对其进行更改,例如,第一行=头,删除日期不匹配的行,并应用上述方法operation@JohnAndrews这可能更好地作为一个单独的SO问题,以便我可以发布图像,但最基本的是,你可以通过点击。。。“配方”窗格右上角的“更多”图标,然后选择“下载配方作为wrangle”。您还可以通过单击。。。鼠标悬停并选择“复制到剪贴板”时显示的更多图标。然后,通过单击“新建步骤”并从剪贴板粘贴,这将在界面中重新创建该步骤,从而将其应用于任何其他配方。@JohnAndrews我还有一个名为!我在其中存储您描述的常用基本配方的模板。当我需要它们时,我点击。。。在它们旁边,选择“制作副本>无输入”以克隆它,然后在副本上单击相同的。。。菜单并选择移动。。。这将打开一个对话框,允许您将配方移动到另一个流或创建一个新流。虽然这并不像应该的那样无痛,但我发现这比从下载的wrangle脚本中粘贴行一步一步地创建食谱要快。