AWS Glue:写入时从 CSV 文件中删除引号字符

AWS Glue: Removing quote character from a CSV file while writing

我在 S3 中有一个 csv 文件,其中没有任何引号。 例如。

dVsdfsCcn7j6,r:werwerwerwerwerwerwerwer,_User$SSSSSBFwJ,login,password,false,2011-10-27 10:46:55,d24c2465e-9945645c5-4645509-a745741c7-ba9bcd1a7cfd,2046-11-27 15:46:55,2016-10-27 10:46:55

当我将此文件作为胶水脚本/作业的输入(我打算在其中删除 _User 前缀)时,ETL 输出会创建一个 csv 文件,该文件在某些​​属性上附加了引号, 例如:

dVsdfsCcn7j6,"r:werwerwerwerwerwerwerwer","_User$SSSSSBFwJ",login,password,false,"2011-10-27 10:46:55","d24c2465e-9945645c5-4645509-a745741c7-ba9bcd1a7cfd","2046-11-27 15:46:55","2016-10-27 10:46:55"

我已根据文档将 quoteChar 设置为 -1,https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format.html

datasink2 = glueContext.write_dynamic_frame.from_options(frame = applymapping1, connection_type = "s3", connection_options = {"path": "s3://test-bucket/staging/final_data"}, format = "csv", format_options = {"quoteChar":'-1'}, transformation_ctx = "datasink2")

我的最终目标是使用 Athena 使这个 csv 数据可查询。

有没有人在转型过程中遇到过这样的问题?是不是和data catalog的SerDe信息有关?任何帮助将不胜感激!

谢谢。

Link 到 AWS 论坛上发布的问题 - https://forums.aws.amazon.com/thread.jspa?threadID=278073&tstart=0

我也遇到了同样的问题。 from_options quoteChar 设置似乎被忽略了。我通过直接使用 DataFrame 将输出写入 s3 来解决这个问题。

applymapping1.toDF() \
    .write
    .option("quote"," ") \
    .csv("s3://bucket/path/to/output/folder")

这似乎有点老套,但在 AWS 给出答复之前暂时有效。