首页 > 解决方案 > 通过 Firehose 将地图数据放到 Athena

问题描述

我在 Athena 中有一个 Map 类型的列。我已将 Glue 中的模式定义为 Map 。

我已经定义了一个引用胶水模式并将其转换为镶木地板格式的 firehose 流。但是,我在发送数据时收到以下错误

The schema is invalid. Error parsing the schema: Error: type expected at the position 0 of 'MAP <STRING, INT>' but 'MAP ' is found.

我正在使用 boto3 firehose 客户端提交数据。

这是我尝试过的

records=[{'Data': '{"id": "aac4da11-d166-42bd-83db-c670f5b5676d", "createdutc": "2019-06-27 10:25:33","tokens": {"black": 1, "spot": 1, "joint": 1, "leg": 1, "due": 1, "itchinghow": 1, "reduce": 1}'}]

firehoseClient.put_record_batch(
    DeliveryStreamName='conversations-analysis',
    Records=records)

标签: boto3amazon-athenaamazon-kinesis-firehose

解决方案


显然,我能够解决它,用小写字母提及架构中的所有内容,您应该能够保存地图数据。例如地图而不是地图


推荐阅读