AWS Glue和Crawler用于层次化Avro文件的解决方法如下:
import boto3
client = boto3.client('glue', region_name='us-east-1')
response = client.create_crawler(
Name='AvroCrawler',
Role='arn:aws:iam::123456789012:role/AWSServiceRoleForGlue',
DatabaseName='your-database-name',
Description='Crawler for Avro files',
Targets={
'S3Targets': [
{
'Path': 's3://your-bucket-name/your-folder-path/',
'Exclusions': []
},
]
},
SchemaChangePolicy={
'UpdateBehavior': 'UPDATE_IN_DATABASE',
'DeleteBehavior': 'DEPRECATE_IN_DATABASE'
},
Configuration='{"Version": 1.0, "Grouping": {"TableGroupingPolicy": "CombineCompatibleSchemas"}}'
)
print(response)
上述代码创建了一个名为"AvroCrawler"的crawler,它会扫描位于"s3://your-bucket-name/your-folder-path/"路径下的Avro文件,并将其解析为层次化的表。
response = client.start_crawler(
Name='AvroCrawler'
)
print(response)
上述代码启动了名为"AvroCrawler"的crawler。
response = client.get_tables(
DatabaseName='your-database-name'
)
print(response)
上述代码将打印出数据库中的所有表,包括由Avro文件解析生成的层次化表。
这样,您就可以使用AWS Glue和Crawler来处理层次化的Avro文件。
下一篇:AWS Glue和更新重复数据