我的用例很简单。我在s3中有20 TB原始csv未压缩数据,具有年份的分区文件夹结构(10个分区10年,每个分区有2 TB)。我想将此数据转换为镶木地板格式(snappy压缩)并保留类似的分区/文件夹结构。我想要在Athena中使用TEN 10分区的一个Parquet表,我将用它来分区查询这些数据,以后可能会删除原始的csv数据。使用Glue,我似乎会创建10张不能使用的镶木桌子。
这在胶水中是否可行?而不是使用EC2,Hive / Spark我正在寻找简单的解决方案。有什么建议?非常感谢任何帮助。
答案 0 :(得分:2)
假设您有关于该数据的胶水目录,您可以将其作为动态框架加载,然后将其作为镶木地板写回到新位置:
dynamic_frame = glue_context.create_dynamic_frame.from_catalog(
database=glue_database_name,
table_name=glue_table_name)
data_frame = dynamic_frame.toDF()
data_frame.repartition("year")\
.write\
.partitionBy("year")\
.parquet('s3://target-bucket/prefix/')