首页 > 解决方案 > 列名在 aws 胶水中返回小写

问题描述

我是 AWS Glue 的新手,并且通过爬虫创建了作业,该爬虫指向 S3 存储桶中的源目标 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()

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

标签: pysparkaws-glue

解决方案


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


推荐阅读