AWS Glue:在编写

时间:2018-03-27 04:08:14

标签: aws-glue

我在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设置为-1
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 个答案:

答案 0 :(得分:3)

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

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

这看起来有点像hacky但现在可以使用,直到AWS得到答案。