我们如何在云数据融合中将字符串转换为日期?
我有一个值说为20191120(yyyyMMdd的格式)的列,我想将其作为日期加载到bigquery的表中。表列数据类型也是日期。
到目前为止,我已经尝试过使用“ parse-as-simple-date”将字符串转换为时间戳,并尝试使用format-date将字符串转换为“ yyyy-MM-dd”,但是此步骤将其转换为字符串,最终加载失败。我什至试图在o / p模式中将日期列明确提到为日期。但是它在运行时失败。
我尝试将其作为时间戳保留在管道中,并尝试将日期加载到Bigquery日期类型中。
我在出现的错误中注意到op是字段dt_1与avro整数不兼容。数据融合在加载之前是否在内部将提取的内容转换为avro。 AVRO没有引起问题的日期数据类型?
为后代添加答案:
您可以尝试做这些,
在最后一步之后,应将其转换为LocalDate类型,您可以将其写入bigquery。希望对您有所帮助
您可以尝试使用Wrangler通过Data Fusion解析输入数据。
为了进行测试,我复制了一个工作流程,在该工作流程中,数据融合管道中输入了来自BigQuery的数据。然后,将这些数据解析为正确的类型,然后将其再次导出回BigQuery。请注意,公共数据集为“ austin_311”,我使用了“‘311_request”表,因为其中某些列为TIMESTAMP类型。
我已完成的步骤如下:
我已使用以下方法查询了包含TIMESTAMP数据的公共数据集:
select * from `bigquery-public-data.austin_311.311_request`
limit 1000;
我已将其上传到Google Cloud Storage。
我在this之后创建了一个新的Data Fusion批处理管道。
我已经使用Wrangler解析CSV数据以自定义'简单数据'yyyy-MM-dd HH:mm:ss
我已将管道结果导出到BigQuery。
This qwiklab已帮助我完成了步骤。
结果:
按照上述步骤,我已经能够将Data Fusion数据导出到BigQuery,并且DATE字段按预期导出为TIMESTAMP。