如何在AWS胶水中处理'0000-00-00'-pyspark

时间:2018-08-04 15:49:26

标签: mysql amazon-web-services apache-spark pyspark aws-glue

我正在使用AWS胶水读取AWS Aurora DB(MySQL)表并写入S3文件。 MySQL表具有日期列值“ 0000-00-00”,这在MySQL中是允许的。因此,我的胶水作业(PySpark)失败了。如何在Glue代码中处理此问题?

我尝试失败的事情。

  1. 追加?

  2. 从PySpark代码的DynamicFrame或Dataframe中删除日期列。 例如:jdbc:mysql:<host-name>/<db-name>?zeroDateTimeBehavior=convertToNull&autoReconnect=true&characterEncoding=UTF-8&characterSetResults=UTF-8

  3. 从胶水表定义中删除日期列。 看起来已读取表中的所有列。

下面的错误消息

df.drop(df["date_column"])

1 个答案:

答案 0 :(得分:0)

验证在Crownler表架构中设置字段的格式。将其设置为字符串。这样,您就不再有解析错误了。 选择具有功能df.selectExpr()的列,然后根据需要设置数据格式。 一些Spark SQL表达式: