[英]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.