我在 S3 中有一个 csv 文件,它没有任何引号。例如。
dVsdfsCcn7j6,r:werwerwerwerwerwerwerwer,_User$SSSSSBFwJ,login,password,false,2011-10-27 10:46:55,d24c2465e-9945645c5-4645509-a7457461c50c-a7457461c50-c5-c-61b1207-c5127-2011-10-27 10-27 10:46:55
当我将此文件作为胶水脚本/作业的输入(我打算在其中删除 _User 前缀)时,ETL 输出会创建一个 csv 文件,该文件将引号附加到某些属性,例如:
dVsdfsCcn7j6,"r:werwerwerwerwerwerwerwer","_User$SSSSSBFwJ",login,password,false,"2011-10-27 10:46:55","d24c2465e-9945645c5-46455579-40c10c-a1c17c74 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")
Run Code Online (Sandbox Code Playgroud)
我的最终目标是使用 Athena 使这个 csv 数据可查询。
有没有人在转型过程中遇到过这样的问题?是否与数据目录的 SerDe 信息有关?任何帮助将不胜感激!
谢谢。
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")
Run Code Online (Sandbox Code Playgroud)
这似乎有点老套,但现在有效,直到 AWS 给出答案。
| 归档时间: |
|
| 查看次数: |
4097 次 |
| 最近记录: |