如果AWS Glue抓取器无法正确识别时间戳列并始终将其定义为字符串,您可以尝试以下解决方法:
import boto3
client = boto3.client('glue')
response = client.update_crawler(
Name='your-crawler-name',
Targets={
'S3Targets': [
{
'Path': 's3://your-bucket/path',
'Exclusions': []
},
]
},
TablePrefix='your-table-prefix',
SchemaChangePolicy={
'UpdateBehavior': 'UPDATE_IN_DATABASE',
'DeleteBehavior': 'LOG'
},
Configuration='{"Version": 1.0, "CrawlerOutput": {"Partitions": {"AddOrUpdateBehavior": "InheritFromTable"}}}',
Role='your-iam-role-arn',
Schedule='cron(0 12 * * ? *)',
DatabaseName='your-database-name',
RecrawlPolicy={
'RecrawlBehavior': 'CRAWL_EVERYTHING'
},
SchemaUpdatePolicy={
'UpdateBehavior': 'UPDATE_IN_DATABASE',
'DeleteBehavior': 'LOG'
}
)
print(response)
import boto3
client = boto3.client('glue')
response = client.create_job(
Name='your-job-name',
Role='your-iam-role-arn',
Command={
'Name': 'glueetl',
'ScriptLocation': 's3://your-bucket/path/to/your/script.py'
},
DefaultArguments={
'--job-language': 'python',
'--job-bookmark-option': 'job-bookmark-disable'
},
Connections={
'Connections': [
'your-connection-name'
]
},
Timeout=2880,
MaxCapacity=2.0,
GlueVersion='1.0',
WorkerType='Standard',
NumberOfWorkers=10
)
print(response)
在上述代码示例中,您需要创建一个Python脚本,将时间戳列的数据格式更改为Glue可识别的格式。然后,将脚本上传到S3并将其路径传递给Glue作业的ScriptLocation
参数。
请注意,这些解决方法可能需要根据您的具体情况进行调整和修改。同时,确保您已正确配置和授权Glue的相关资源和权限。
上一篇:AWS Glue转换