Chargement du fichier JSON dans le tableau de la RUCHE
J'ai un fichier JSON comme ci-dessous, qui je veux charger dans un tableau de la RUCHE avec analysée format, quelles sont les options possibles, je peux aller.
Si c'est AVRO ensuite, je pourrais avoir utilisé directement AvroSerDe. Mais le fichier source dans ce cas est JSON.
{
"subscriberId":"vfd1234-07e1-4054-9b64-83a5a20744db",
"cartId":"1234edswe-6a9c-493c-bcd0-7fb71995beef",
"cartStatus":"default",
"salesChannel":"XYZ",
"accountId":"12345",
"channelNumber":"12",
"timestamp":"Dec 12, 2013 8:30:00 AM",
"promotions":[
{
"promotionId":"NEWID1234",
"promotionContent":{
"has_termsandconditions":[
"TC_NFLMAXDEFAULT16R103578"
],
"sequenceNumber":"305",
"quantity":"1",
"promotionLevel":"basic",
"promotionDuration":"1",
"endDate":"1283142400000",
"description":"Regular Season One Payment",
"active":"true",
"disableInOfferPanel":"true",
"displayInCart":"true",
"type":"promotion",
"frequencyOfCharge":"weekly",
"promotionId":"NEWID1234",
"promotionIndicator":"No",
"shoppingCartTitle":"Regular Season One Payment",
"discountedPrice":"0",
"preselectedInOfferPanel":"false",
"price":"9.99",
"name":"Regular Season One Payment",
"have":[
"CatNFLSundayMax"
],
"ID":"NEWID1234",
"startDate":"1451365600000",
"displayInOfferPanel":"true"
}
}
]
}
J'ai essayé de créer une table en utilisant org.openx.data.jsonserde.JsonSerDe
, mais il n'est pas en me montrant les données.
CREATE EXTERNAL TABLE test1
(
SUBSCRIBER_ID string,
CART_ID string,
CART_STAT_NAME string,
SLS_CHAN_NAME string,
ACCOUNT_ID string,
CHAN_NBR string,
TX_TMSTMP string,
PROMOTION ARRAY<STRING>
)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
LOCATION '<HDFS location where the json file is place in single line>';
Vous devez vous connecter pour publier un commentaire.
Pas sûr au sujet de la
JsonSerDe
vous utilisez . Bu ici ceJsonSerDe
vous pouvez utiliser pour vous.La ruche-JSON-SerdeComment construire jar.
Maven doit être installé sur votre PC puis de lancer la commande comme ceci.
Ou si vous souhaitez utiliser la fonction intégrée de
JsonSerde
get_json_object json_tuplesi vous êtes à la recherche pour un exemple sur la façon d'utiliser le voir ce blog La ruche-JSON-Serde exemple .
Je vais vous recommandons de valider votre fichier JSON ainsi.JSON Validateur
Si vous lisez le document officiel
lorsque vous utilisez la ruche 0,12 et plus tard, à l'utilisation
hive-hcatalog-core
,vous devez d'abord ajouter le jar
hive-hcatalog-core
,vous pouvez soit le télécharger à partir de mvn référentiel ou trouver manuellement.
ensuite le tableau de la ruche devrait ressembler à
Étapes suivantes pour charger fichier JSON données dans le tableau de la ruche
1] Create table dans la ruche
2] Charge le fichier JSON dans une table de la ruche
3] Si l'on applique normal sélectionnez * à partir de JsonTableExample; nous aurons toutes les données. Ce n'est pas une solution efficace pour que nous avons à suivre l'étape 4.
4] Sélectionnez les données à l'aide de get_json_object() la fonction