Amazon web services 更新粘合表架构时设置小数位数

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

我正在尝试更新由Glue数据爬虫创建的CSV表定义。其中一列包含当前分类为双精度的十进制数据

我发现,当我使用控制台更改模式时,我无法设置任何可能与数据类型相关联的附加属性(例如,如果我选择Decimal,我将得到Decimal(10,0),而无法更改数字的大小或小数位数)


更新此架构以使其具有正确的数据类型(包括其他属性)的建议方法是什么?

最近,我在胶表架构上设置小数点时遇到一些问题。 我必须通过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
,这正是您需要的