繁体   English   中英

AWS Glue 无法将 UUID 插入 Postgres 数据库

[英]AWS Glue failed to insert UUID into Postgres DB

我在 Aurora Postgres DB 中创建了一个具有一个 UUID 列id的表,并使用以下代码创建了一个 AWS Glue Studio 作业:

schema = ['id']
rdd = [[str(uuid.uuid4())]]
dyf = glueContext.create_dynamic_frame_from_rdd(rdd, 'dyf', schema=schema)
glueContext.write_from_options(frame_or_dfc=dyf, connection_type='postgresql', connection_options={...})

报错:

2023-01-05 20:27:35,757 INFO [task-result-getter-0] scheduler.TaskSetManager (Logging.scala:logInfo(57)): 在 10.248.10.50 的阶段 0.0 (TID 36) 中丢失任务 35.1,执行者1:java.sql.BatchUpdateException(批处理条目 0 插入“数据”。“t”(“id”)值('6f2ac9cd-c6a9-4798-bc9b-59c8a3d37ca1')已中止:错误:列“id”的类型为 uuid但是表达式的类型是字符变化提示:您需要重写或强制转换表达式。

我试过rdd = [[uuid.uuid4()]] ,但似乎 Spark 不支持uuid

RecursionError: maximum recursion depth exceeded while calling a Python object

INSERT INTO "data"."t" ("id") VALUES ('6f2ac9cd-c6a9-4798-bc9b-59c8a3d37ca1')

奇怪的是我可以从 SQL 客户端成功运行 SQL 语句。 它是 AWS Glue 中的错误吗?

通过向connection_options添加项目解决问题

connection_options = {
    ...
    'stringtype': 'unspecified',
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM