首页 文章

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

提问于
浏览
1

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

dVsdfsCcn7j6,r:werwerwerwerwerwerwer,_User $ SSSSSBFwJ,登录名,密码,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:werwerwerwerwerwerwer”,“_ User $ SSSSSBFwJ”,登录名,密码,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数据可查询 .

在转型期间有没有人遇到过这样的问题?它是否与数据目录的SerDe信息有关?任何帮助将不胜感激!

谢谢 .

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

1 回答

  • 2

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

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

    这似乎有点hacky但现在可以使用,直到AWS得到答案 .

相关问题