如何使用AWS Glue将S3中存储的无标题,压缩,管道分隔文件转换为拼花

时间:2019-05-17 12:35:41

标签: amazon-web-services amazon-s3 parquet aws-glue aws-glue-data-catalog

目前,我在S3中有数千个无头,管道分隔的GZIP压缩文件,总计约10TB,具有相同的架构。在AWS Glue中,最好的方法是(1)添加头文件,(2)使用文件中的“日期”字段转换为按周划分的拼花格式,(3)将文件添加到Glue数据目录可用于在AWS Athena中进行查询?

1 个答案:

答案 0 :(得分:0)

1)创建一个指向您在S3上的数据的雅典娜表:

Create external table on athena

2)使用您在上一步中创建的表从胶水目录创建动态框架。

from awsglue.context import GlueContext
glueContext = GlueContext(SparkContext.getOrCreate())
DyF = glueContext.create_dynamic_frame.from_catalog(database="{{database}}", table_name="{{table_name}}")

3)以您喜欢的任何格式将数据写回到新的S3位置:

glueContext.write_dynamic_frame.from_options(
   frame = DyF,
   connection_type = "s3",
   connection_options = {"path": "path to new s3 location"},
   format = "parquet")

4)创建一个指向您在S3上的实木复合地板数据的雅典娜表:

Create external table on athena

注意:除了手动创建雅典娜表之外,您还可以使用粘合爬虫为您创建一个。但是,这将产生一些费用。