当某些列有几种不同的数据类型时,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?的主要内容,如果未能解决你的问题,请参考以下文章

JS有几种方法判断变量的类型?

常见伪装IP的方法有几种

mysql有几种数据类型呢?分别是哪几种呢?

网络攻击的几种类型

为啥 Go 有几种不同的整数类型?

js数据类型有几种