我已经通过API AWS胶水中的create_table在目录表中创建了表。
通过此代码示例,下面的代码在目录中创建表。
当我从该表创建动态框架时,它是空的,没有模式。
我想用这四列创建空的动态框架
response = client.create_table(
DatabaseName= 'xxxxxxxxxx',
TableInput={'Name':'xxxxxxxxxx',
'StorageDescriptor': {
'Columns': [
{'Name': 'column_1', 'Type': 'string', 'Comment': 'None'},
{'Name': 'column_2', 'Type': 'string', 'Comment': 'None'},
{'Name': 'column_2', 'Type': 'string', 'Comment': 'None'},
{'Name': 'column_2', 'Type': 'string', 'Comment': 'None'}
],
'Location':'s3://xxxxxxx/',
'InputFormat': 'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat',
'OutputFormat': 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat',
'SerdeInfo': {
'Name': 'avro',
'SerializationLibrary': 'org.apache.hadoop.hive.serde2.avro.AvroSerDe',
'Parameters':'{"type":"record","name":"DynamicRecord","namespace":"root","fields":[{"name":"column_1","type":["string","null"]},{"name":"column_2","type":["string","null"]},{"name":"column_3","type":["string","null"]},{"name":"column_4","type":["string","null"]}]}'
}
}} )
答案 0 :(得分:0)
DynamicFrame与DataFrame相似,不同之处在于每个记录都是 自描述的,因此最初不需要架构。相反,AWS Glue 在需要时即时计算模式,并进行显式编码 使用选择(或并集)类型的架构不一致。你可以解决 这些不一致使您的数据集与数据兼容 需要固定模式的存储。
您可以使用apply_mapping()
来显式设置架构,或在s3位置中需要一些数据。