Amazon web services 更新粘合表架构时设置小数位数
我正在尝试更新由Glue数据爬虫创建的CSV表定义。其中一列包含当前分类为双精度的十进制数据 我发现,当我使用控制台更改模式时,我无法设置任何可能与数据类型相关联的附加属性(例如,如果我选择Decimal,我将得到Decimal(10,0),而无法更改数字的大小或小数位数)Amazon web services 更新粘合表架构时设置小数位数,amazon-web-services,aws-glue,aws-glue-data-catalog,Amazon Web Services,Aws Glue,Aws Glue Data Catalog,我正在尝试更新由Glue数据爬虫创建的CSV表定义。其中一列包含当前分类为双精度的十进制数据 我发现,当我使用控制台更改模式时,我无法设置任何可能与数据类型相关联的附加属性(例如,如果我选择Decimal,我将得到Decimal(10,0),而无法更改数字的大小或小数位数) 更新此架构以使其具有正确的数据类型(包括其他属性)的建议方法是什么?最近,我在胶表架构上设置小数点时遇到一些问题。 我必须通过AWS cli创建模式 我所拥有的有点不同,它是我s3数据湖上的一块拼花地板 以下cli命令基于j
更新此架构以使其具有正确的数据类型(包括其他属性)的建议方法是什么?最近,我在胶表架构上设置小数点时遇到一些问题。 我必须通过AWS cli创建模式 我所拥有的有点不同,它是我s3数据湖上的一块拼花地板 以下cli命令基于json创建架构:
aws glue创建表--数据库名称示例\u db--表输入file://example.json
下面的example.json
引用了s3://my datalake/example/{dt}/
上的拼花文件,其中dt
是我的表的一个分区。而dec\u col
是一个带有十进制(10,2)
类型的列:
{
"Name": "example",
"Retention": 0,
"StorageDescriptor": {
"Columns": [
{
"Name": "id",
"Type": "int"
},
{
"Name": "dec_col",
"Type": "decimal(10,2)"
}
],
"Location": "s3://my-datalake/example/",
"InputFormat": "org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat",
"OutputFormat": "org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat",
"Compressed": false,
"NumberOfBuckets": 0,
"SerdeInfo": {
"SerializationLibrary": "org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe",
"Parameters": {
"serialization.format": "1"
}
},
"SortColumns": [],
"StoredAsSubDirectories": false
},
"PartitionKeys": [
{
"Name": "dt",
"Type": "date"
}
],
"TableType": "EXTERNAL_TABLE",
"Parameters": {
"classification": "parquet"
}
}
通过这种方式,您可以使用比例和精度将类型定义为decimal
,这正是您需要的