我在S3中有一个csv文件,它没有任何引号。 例如。
dVsdfsCcn7j6,R:werwerwerwerwerwerwerwer,_user $ SSSSSBFwJ,登录名,密码,假,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”, “_用户$ SSSSSBFwJ”,登录名,密码,假“2011-10-27 10点46分55" 秒, “d24c2465e-9945645c5-4645509-a745741c7-ba9bcd1a7cfd”,“2046年11月27日 15:46:55“,”2016-10-27 10:46:55“
我根据文档https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format.html
将quoteChar设置为-1datasink2 = 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
答案 0 :(得分:3)
我一直有同样的问题。 from_options quoteChar设置似乎被忽略了。我通过直接使用DataFrame将输出写入s3来解决这个问题。
applymapping1.toDF() \
.write
.option("quote"," ") \
.csv("s3://bucket/path/to/output/folder")
这看起来有点像hacky但现在可以使用,直到AWS得到答案。