【问题标题】:Column names return lowercase in aws glue列名在 aws 胶水中返回小写
【发布时间】:2020-04-19 07:58:29
【问题描述】:

我是 AWS Glue 的新手,并且通过爬虫创建了作业,该作业指向 S3-bucket 中的源目标 CSV 文件。

CSV 文件包含以下列:

userId  jobTitleName    firstName   lastName    preferredFullName   employeeCode    region

现在在作业执行期间,它会抛出以下错误 Key error: userid' not exist。根据通知,该问题看起来是区分大小写的问题。所以根据胶水文档,我为模式创建了映射

mappingsSchema=[('userid', 'integer', 'userId', 'integer'),
                 ('jobtitlename', 'string', 'jobTitleName', 'string'),
                 ('firstname', 'string', 'firstName', 'string'),
                 ('lastname', 'string', 'lastName', 'string'),
                 ('preferredfullName', 'string', 'preferredFullname', 'string'),
                 ('employeecode', 'string', 'employeeCode', 'string'),
                 ('region', 'string','region', 'string')]
mapped_dynamic_frame_read=dynamic_frame_read.apply_mapping(mappings = mappingsSchema, case_sensitive = True, transformation_ctx = "tfx")
##And converting to the spark df
df = mapped_dynamic_frame_read.toDF()

我仍然收到同样提到的错误。 如何解决此类问题?

【问题讨论】:

  • 看起来没有数据读入您的动态框架。您可以通过检查 mappingsSchema.count() 或 mappingsSchema .show() 来验证相同
  • 嗨@Dunedan,我看到正在从“mappingsSchema .show()”中读取数据。但是“用户 ID”返回 null。请告诉我需要进行哪些更改才能解决此问题?
  • 您是否通过胶水表表示读取 csv 文件?

标签: pyspark aws-glue


【解决方案1】:

嗨@Emerson问题在于映射中的列名被错误地指定为模式定义。现在它已经修复并且工作正常......谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多