amazon-web-services - 更新 Glue Table Schema 时设置小数位数

标签 amazon-web-services aws-glue aws-glue-data-catalog

我正在尝试更新由 Glue Data Crawler 创建的 CSV 表定义。其中一列包含当前被归类为 double 的十进制数据。

我发现当我使用控制台更改架构时,我无法设置任何可能与数据类型关联的其他属性(例如,如果我选择 Decimal,我将无法获得 Decimal(10,0)更改数字的大小或小数位数)。

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

最佳答案

我最近在 Glue Table Schema 上设置小数点时遇到了一些问题。
我必须通过 AWS cli 创建我的架构。

我所拥有的有点不同,它是我的 s3 数据湖上的 Parquet 。

以下 cli 命令基于 json 创建架构:

aws glue create-table --database-name example_db --table-input file://example.json

以下example.json引用 s3://my-datalake/example/{dt}/ 上的 Parquet 文件哪里dt是我表的一个分区。和 dec_col是带有 decimal(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具有规模和精度,这就是您要寻找的。

关于amazon-web-services - 更新 Glue Table Schema 时设置小数位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60584475/

相关文章:

amazon-web-services - 使用自定义资源 Lambda 运行爬网程序

amazon-web-services - 无法创建胶水连接

amazon-web-services - 如何解决 AWS 爬虫在双引号内拆分逗号并破坏数据目录的问题?

amazon-web-services - 从 DynamoDB 中查找没有哈希和范围键的行并将其删除

amazon-web-services - 如何在 spacy 运行时下载 "en_core_web_sm"模型?

amazon-web-services - Spot 服务是否会启动手动停止的 Spot 实例

amazon-web-services - Cloudwatch 日志 -> Kinesis Firehose -> S3 - 不是正确的 JSON?

java - Amazon S3 客户端未列出存储桶中的所有文件夹

amazon-web-services - 如何为爬取的表设置名称?

amazon-web-services - 我应该每次都运行 Glue 爬虫来获取最新数据吗?