Comment faire pour insérer des données dans le Parquet de la table dans la Ruche
J'ai simple table de texte (délimité par des ",") avec le format suivant:
orderID INT, CustID INT, OrderTotal FLOAT, OrderNumItems INT, OrderDesc STRING
Je veux insérer ces données dans un Parquet de table:
J'ai créé la table à l'aide de:
CREATE TABLE parquet_test (orderID INT, CustID INT, OrderTotal FLOAT,
OrderNumItems INT, OrderDesc STRING)
ROW FORMAT SERDE 'parquet.hive.serde.ParquetHiveSerDe' stored as
INPUTFORMAT 'parquet.hive.DeprecatedParquetInputFormat'
OUTPUTFORMAT 'parquet.hive.DeprecatedParquetOutputFormat';
mais lorsque j'essaie d'insérer les données à l'aide de
insert overwrite table parquet_small_orders select * from small_orders;
il échoue. toutes les pensées?
OriginalL'auteur Alex L | 2014-04-18
Vous devez vous connecter pour publier un commentaire.
Je vais partager ce que je viens de tester et il fonctionne parfaitement bien. Je sais que ça peut être une version de problème lié à la Ruche qui pourrait l'ai résolu en ce moment. Je vais vous expliquer ce que je viens de le faire, de toute façon,
1. La vérification des données brutes
2. Le montage d'un tableau de la Ruche pointant vers le Fichier
4. Vérification de la table de la Ruche fonctionne correctement. Notez que j'ai ajouté une peine d'ignorer la première ligne, qui est souvent l'en-tête du fichier csv.
5. Montage Parquet de table:
6. Insertion de données à partir d'un fichier CSV tableau de la Ruche à la Ruche Parquet (table de Conversion de parquet dans le processus)
Enfin, j'ai une double vérification de la transformation de données est correct de faire une simple requête à
myDB.parquet_test
.Pour être sûr à 100%, les données sont en Parquet, je suis allé à
/my/path/to/parquet
et j'ai vérifié que ces fichiers sont en Parquet.Vous ne savez pas si votre problème est que vous n'êtes pas à sauter peut-être l'en-tête du fichier, ou peut-être la version que vous utilisez, mais encore une fois, ces étapes que je viens de vous expliquer fonctionne bien.
OriginalL'auteur dbustosp
Quels sont les messages d'erreur que vous obtenez sur la ruche côté serveur?
J'ai eu un problème similaire. Dans la ruche journal du serveur j'ai vu des tas de problèmes de mémoire.
Je pourrais résoudre le problème sur mon installation de hadoop à l'aide des valeurs plus élevées dans mapred-site.xml
OriginalL'auteur woopi
Fonctionne pour moi; voir ci-dessous.
Nous ne pouvons pas voir votre csv définition de la table, mais je crois que vous pouvez avoir besoin de donner le délimiteur?
De toute façon, mon code devrait aider.
Matt
OriginalL'auteur matthieu lieber
La réponse par Matthieu Lieber décrit comment vous pouvez charger des données d'un parquet à la table.
Couple de choses avant de poster votre question suivante.
Veuillez indiquer de quelle version vous utilisez. Le Parquet n'a pas été pris en charge nativement dans la Ruche, les versions antérieures à 0,13 et vous devez ajouter quelques explicite des pots afin d'obtenir la fonctionnalité.
Veuillez ajouter les journaux d'erreur et messages d'erreur. "Il ne" une vague description de l'erreur et cela rend les choses difficiles à déboguer. La façon dont vous effectuez le chargement des données semble OK et cela devrait fonctionner. Cependant, un journal que les choses auraient été claires quant à ce qu'est la question.
Si c'est encore une question ouverte, vous pouvez vous référer à Cloudera de la documentation pour voir quelques notions de base sur la façon dont vous pouvez utiliser Parquet avec de la Ruche.
Merci!
OriginalL'auteur Rahul
Avez-vous suivi ces étapes?
parquet-hive-bundle-1.5.0.jar
Réviser
hive-site.xml
d'inclure ceci:OriginalL'auteur Shiwangi