je tentais de charger ces données JSON dans la rucheErreur dans Nested JSON Ruches
{
"id": "0001",
"type": "donut",
"name": "Cake",
"ppu": 0.55,
"batters":
{
"batter":
[
{ "id": "1001", "type": "Regular" },
{ "id": "1002", "type": "Chocolate" },
{ "id": "1003", "type": "Blueberry" },
{ "id": "1004", "type": "Devil's Food" }
]
},
"topping":
[
{ "id": "5001", "type": "None" },
{ "id": "5002", "type": "Glazed" },
{ "id": "5005", "type": "Sugar" },
{ "id": "5007", "type": "Powdered Sugar" },
{ "id": "5006", "type": "Chocolate with Sprinkles" },
{ "id": "5003", "type": "Chocolate" },
{ "id": "5004", "type": "Maple" }
]
}
utilisant DDL commandes
ADD JAR /home/cloudera/Downloads/json-serde-1.3.6-SNAPSHOT-jar-with-dependencies.jar;
CREATE EXTERNAL TABLE format.json_serde (
`id` string,
`type` string,
`name` string,
`ppu` float,
batters` struct < `batter`:array < struct <`bid`:string, `btype`:string >>>,
`topping`:array < struct<`tid`:int, `ttype`:string>>
)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe';
jette moi error
FAILED: ParseException line 7:11 cannot recognize input near ':' 'array' '<' in column type </b>
Merci, quand j'ai essayé de l'interroger a renvoyé l'erreur folllowing ** Echec à l'exception java.io.IOException: org.apache.hadoop .hive.serde2.SerDeException: org.codehaus.jackson.JsonParseException: End-of-input inattendu: marqueur de fermeture attendu pour OBJECT (à partir de [Source: [email protected]; ligne: 1, colonne: 0]) à [Source: java.io.ByteArrayInputStream @ 73304204; ligne: 1, colonne: 3] ** S'il vous plaît laissez-moi savoir si vous avez effectué une mise en forme sur les données d'entrée –
Tout document JSON doit être écrit dans une seule ligne. Je ne suis au courant d'aucun Serotype JSON qui sait comment traiter un document multi-lignes. –