Google Cloud DataPrep DATEDIF功能不​​一致

时间:2018-03-13 20:33:57

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

我有四个DateTime列,所有列都是长格式,例如2016-08-01T21:13:02Z。它们被称为EnqDateTimeQuoteCreatedDateTimeBookingCreatedDateTimeRejAt

我想在EnquiryDateTime和其他三列之间添加持续时间(以天为单位)的列,即

DATEDIF(EnqDateTime, QuoteCreatedDateTime, day)

这适用于RejAt,但会为所有其他列引发错误:

Parameter "rhs" accepts only ["Datetime"]

根据下图,所有四列都是 DateTime。

Column setup showing working RejAt DATEDIFF

任何人都可以看到任何其他原因这可能不适用于三列中的两列吗?

1 个答案:

答案 0 :(得分:0)

正如您在下图中看到的那样,我再现了一个场景,例如您在这里展示的场景,我没有遇到任何问题。我使用您共享的相同公式创建了三列X2Y

DATEDIF(EnqDateTime, QuoteCreatedDateTime, day)
DATEDIF(EnqDateTime, BookingCreatedDateTime, day)
DATEDIF(EnqDateTime, RejAt, day)

enter image description here

我的猜测是,由于某种原因,列没有适当的Datetime格式。也许您可以尝试对数据应用一些转换,以确保列中包含的数据具有适当的格式。我建议您尝试执行以下操作:

  • 清除所有缺失值,单击列,然后点击Clean > Missing > Fill with NULL。缺少值可能会阻止Dataprep正确识别数据类型。
  • 再次将数据类型更改为Datetime,只是为了重复检查没有任何字段没有Datetime类型。您可以点击列,然后点击Change type > Date/Time

如果这些方法无法解决您的问题,也许您可​​以尝试使用最少的示例,只有几行,以便您可以缩小要使用的变量。然后,您可以使用更多信息更新您的问题。

知道你在哪里得到错误Parameter "rhs" accepts only ["Datetime"]也很好。在这种情况下,我不清楚rhs(右手侧)参数是什么,所以也许你也可以提供更多细节。