当某些列有几种不同的数据类型时,DynamoDB 表到 Hive?
Posted
技术标签:
【中文标题】当某些列有几种不同的数据类型时,DynamoDB 表到 Hive?【英文标题】:DynamoDB table to Hive when some column have couple of different data types? 【发布时间】:2017-09-18 14:25:53 【问题描述】:您好,我正在尝试从 Hive 中的 Dynamo 创建外部表,并将其作为镶木地板文件保存在 s3 上。我遇到了一个问题,其中一列 value 的项目具有不同的数据类型(有时是字符串,有时是数字,有时是字符串/数字数组)。因此,我不知道该列应该是什么数据类型 - 如果我将其设置为带有数字或数组的字符串项目,该属性将具有 Null 值。
有谁知道如何创建将所有这些类型转换为字符串的表?我必须编写自定义 SerDe 吗?
【问题讨论】:
【参考方案1】:我想你正在使用这个存储处理程序 org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler 如果是这样,那么看看这个文档https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/EMRforDynamoDB.ExternalTableForDDB.html
特别是本节:
注意:DynamoDBStorageHandler 类不支持以下 DynamoDB 数据类型,因此它们不能与 dynamodb.column.mapping 一起使用
Map
List
Boolean
Null
然后,如果您的 DynamoDB 列具有上述任何数据类型,则您的配置单元列值始终为 NULL。
【讨论】:
以上是关于当某些列有几种不同的数据类型时,DynamoDB 表到 Hive?的主要内容,如果未能解决你的问题,请参考以下文章