我正在使用boto3 API自动将分区添加到粘合表中。为了创建一个分区,我可以使用create_partition api,它需要我指定一个字典,如下所示。
PartitionInput = {
'Values': [
'2018', '08', '25', '06'
],
'StorageDescriptor': {
'Location': 'some_location/2018/08/25/06',
'InputFormat': 'input_format',
'OutputFormat': 'output_format',
'SerdeInfo': 'serde_info'
}
}
现在,我想使用batch_create_partition API,在这里我需要指定上述字典的数组来一起创建多个分区。因此,如果用户输入2018年8月25日(开始日期)和3作为分区数,则我的数组应包含3个值,其中每个值均是上述字典,但会更改值和位置。所以输出将是-
PartitionInput = [{
'Values': [
'2018', '08', '25', '00'
],
'StorageDescriptor': {
'Location': 'some_location/2018/08/25/06',
'InputFormat': 'input_format',
'OutputFormat': 'output_format',
'SerdeInfo': 'serde_info'
}
},
{
'Values': [
'2018', '08', '25', '01'
],
'StorageDescriptor': {
'Location': 'some_location/2018/08/25/06',
'InputFormat': 'input_format',
'OutputFormat': 'output_format',
'SerdeInfo': 'serde_info'
}
}, {
'Values': [
'2018', '08', '25', '03'
],
'StorageDescriptor': {
'Location': 'some_location/2018/08/25/06',
'InputFormat': 'input_format',
'OutputFormat': 'output_format',
'SerdeInfo': 'serde_info'
}
}
]
我是Python和编程的新手,所以我不确定该怎么做。
答案 0 :(得分:0)
我能够使用下面的代码解决以上问题-
for x in range(24):
year = 2018
month = 02
day = 25
hour = x
part_loc = "some_location/{}/{}/{}/{}".format(year, month, day, hour)
input_dict = {
'Values': [
str(year), str(month), str(day), str(hour)
],
'StorageDescriptor': {
'Location': part_loc,
'InputFormat': 'input_format',
'OutputFormat': 'output_format',
'SerdeInfo': 'serde_info'
}
}
input_list.append(input_dict.copy())
print input_list