2017-05-26 2 views
1

J'ai des fichiers JSON à charger dans la table hive, mais il contient une clé en double qui rend toutes les données nulles ou impossibles à sélectionner sur Hive.Supprimer/mapper la clé dupliquée sur la table Hive?

ces fichiers JSON avait quelque chose comme ceci:

{"timeSeries":"17051233123","id":"123","timeseries":"17051233123","name":"sample"}

J'essaie de créer la table ruche

CREATE EXTERNAL TABLE table_hive (`id` 
STRING, `name` STRING, `timeseries` STRING,`timeseries2` STRING) 
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' 
WITH SERDEPROPERTIES ("mapping.timeseries2" = "timeSeries") 
LOCATION 'app/jsonfile.json'; 

comment faire devenir interrogeable table de ruche?

Répondre

0

fonctionne très bien avec le SerDe JSON qui vient avec la distribution Ruche

create external table table_hive 
(
    id   string 
    ,name  string 
    ,timeseries string 
) 
row format serde 'org.apache.hive.hcatalog.data.JsonSerDe' 
stored as textfile 
; 

select * from table_hive 
; 

+-----+--------+-------------+ 
| id | name | timeseries | 
+-----+--------+-------------+ 
| 123 | sample | 17051233123 | 
+-----+--------+-------------+ 
+0

quelle version avez-vous utilisé? J'ai déjà essayé d'utiliser ce 'hcatalog-core-0.12.0.2.0.11.0-1.jar' (en lisant quelque part qu'il utilise toujours' jackson 1.x') toujours pas bon, il stocke le json comme table peut-être mais quand j'essaye de le sélectionner renvoyer l'erreur me disant le json est malformé en donnant la notification au sujet de timeseries étant la clef dupliquée détectée dans le json? tandis que si je mets ignorer malformed en vrai, toutes les données deviennent nulles. P.S: mon vrai fichier json ne ressemble pas à ceci, c'est un exemple similaire à mon fichier json. Laissez-moi essayer votre JSONSerDe en premier? –

+0

'java.io.IOException: Row n'est pas un objet JSON valide - JSONException: clé en double" timeseries "' lorsque j'essaie de le sélectionner. il me retourne quelque chose comme ça –

+1

Testé sur Hive '1.1.0-cdh5.10.0' en utilisant' hive-hcatalog-core-1.1.0-cdh5.10.0.jar' (ainsi que Hive '2.1.1') –