我在 MySQL 数据库中有一个表,其中包含一个名为 activity
的列,该列的数据类型为 BIT。当转换为 INT 时,它可以取值 1,2 或 3。
在 AWS Glue 中使用爬虫时,它会将 activity
识别为 BOOLEAN。我试图编辑表的架构并将 activity
的数据类型更改为 INT 但 Glue 在运行作业时仍将其读取为 BOOLEAN。
我也曾尝试使用 ApplyMapping 将其转换为 INT 但没有成功。
关于如何解决这个问题有什么想法吗?
最佳答案
我通过将查询下推到 MySQL 数据库解决了这个问题,我在将 BIT 读入 Glue 时将其 CAST 为 INT 使用:
pushdown_query = "(SELECT col1, CAST(activity AS INT) AS activity FROM my_table) my_table"
df = glueContext.read.format("jdbc")\
.option("driver", "com.mysql.jdbc.Driver") \
.option("url", db_url) \
.option("dbtable", pushdown_query) \
.option("user", db_user) \
.option("password", db_pass).load()
关于mysql - 从 MySQL 读取位数据类型并使用 AWS Glue 转换为 Redshift 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52992417/