2017-09-18 2 views
1

Salut J'essaie de créer une table externe à partir de Dynamo dans Hive et l'enregistrer sur s3 comme fichiers parquet. J'ai rencontré un problème avec une colonne valeur qui ont des éléments avec différents types de données (parfois chaîne, parfois nombre et parfois tableau de chaînes/chiffres). À cause de cela, je ne peux pas savoir quel type de données cette colonne devrait être - si je la mets à des éléments de chaîne avec un nombre ou un tableau aura une valeur Null pour cet attribut.Table DynamoDB à Hive lorsque certaines colonnes ont deux types de données différents?

Est-ce que quelqu'un sait comment je peux créer une table qui convertit tous ces types en chaîne? Devrai-je écrire SerDe personnalisé?

Répondre

0

Je suppose que vous utilisez ce stockage gestionnaire org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler si oui, jetez un coup d'œil cette documentation https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/EMRforDynamoDB.ExternalTableForDDB.html

Dans cette section particulière:

Note: les types de données DynamoDB suivants ne sont pas pris en charge par la classe DynamoDBStorageHandler, donc ils ne peuvent pas être utilisés avec dynamodb.column.mapping

Map 
List 
Boolean 
Null 

Ensuite, si vous avez une colonne avec DynamoDB l'un des types de données ci-dessus, vous aurez toujours la valeur NULL.