Amazon web services 如何合并S3 bucket中的CSV文件并使用AWS Glue将其保存回S3

Amazon web services 如何合并S3 bucket中的CSV文件并使用AWS Glue将其保存回S3,amazon-web-services,amazon-s3,aws-glue,aws-glue-data-catalog,aws-glue-spark,Amazon Web Services,Amazon S3,Aws Glue,Aws Glue Data Catalog,Aws Glue Spark,目标是使用胶水将数据(csv文件)从一个S3存储桶转换到另一个S3存储桶 我已经尝试过的: 我创建了一个CSV分类器。 我创建了一个爬虫程序来扫描S3存储桶中的数据。 我被困的地方: 无法找到如何在S3中再次存储输出,而不将其保存在任何RDS或其他数据库服务中。 因为Glue output要求数据库输出,我没有,也不想使用 有没有什么方法可以在不使用任何其他DB系统的情况下实现这个目标,只使用纯S3,Glue 更多信息 示例单个CSV文件,我正在尝试合并 分级机,分级机厚度为“;” 爬虫配置

目标是使用胶水将数据(csv文件)从一个S3存储桶转换到另一个S3存储桶

我已经尝试过的:

我创建了一个CSV分类器。 我创建了一个爬虫程序来扫描S3存储桶中的数据。 我被困的地方:

无法找到如何在S3中再次存储输出,而不将其保存在任何RDS或其他数据库服务中。 因为Glue output要求数据库输出,我没有,也不想使用

有没有什么方法可以在不使用任何其他DB系统的情况下实现这个目标,只使用纯S3,Glue

更多信息 示例单个CSV文件,我正在尝试合并

分级机,分级机厚度为“;”

爬虫配置

爬网程序结果(未检测到架构)


由于源文件中存在的行数,Glue crawler检测到架构的原因未知。请参阅本案例中使用的内置CSV分类器一节

根据要分类为CSV的文档,表模式必须至少有两列和两行数据

在您的情况下,您可以使用AWS Glue job并使用以下任一方法直接从S3读取文件:

1.创建一个动态框架并按如下方式传递spearator:;在格式选项中。下面是您可以根据需要修改的示例

dyF = GlueContext.create_dynamic_frame_from_options(connection_type="s3",connection_options = {"paths": [InputDir]},format="csv",format_options={"withHeader": True,"separator": ";","quoteChar": '"',"escaper": '"'},transformation_ctx = "taxidata")
2.使用spark dataframe从S3中读取数据,然后将其转换回dynamicframe,如果您想进行本机转换:

df = spark.read.options(delimiter=';').csv("s3://path-to-files/")
如果要合并具有不同模式的文件,请将包含不同模式的数据读取到所选的不同帧中,然后使用Join操作符合并它们


请参阅哪个示例代码可以连接并将数据写回s3。

源CSV文件中有多少行?@prabhakarredy每个文件中有一行。我的目标是合并所有这些单行文件并创建一个合并文件(在添加头之后)。我需要在哪里编写此代码?它应该在AWS胶水仪表板上吗?你应该读一下,谢谢,现在就看。但是你相信用例是可能的吗?在S3存储桶上运行胶水作业,然后合并文件并保存到另一个存储桶中?不使用任何其他服务,只需使用胶水即可。