Insérer des données dans une table de la ruche
À l'aide d'une distribution Cygwin, j'ai installé Hadoop 0.20.3 et la Ruche 0.11.0.
Tout d'abord, je ne comprends pas comment utiliser la Ruche de la CLI:
hive> show tables;
Puis entrez et rien ne se passe. Je peux exécuter des requêtes à l'aide de hive -e/-f.
Ensuite, j'ai créé un tableau:
CREATE TABLE tweet_table(
tweet STRING
)
COMMENT 'Table of string'
Mais comment puis-je insérer des données dans ce tableau? Je vois que certains INSERT INTO
des exemples, mais quand j'essaie:
INSERT INTO TABLE tweet_table (tweet) VALUES ("data")
J'ai une erreur:
FAILED: ParseException line 1:30 cannot recognize input near '(' 'tweet' ')' in select clause
Comment puis-je ajouter des données dans ma table?
OriginalL'auteur Apaachee | 2013-06-07
Vous devez vous connecter pour publier un commentaire.
Vous pouvez insérer de nouvelles données dans la table de deux manières.
Charger les données d'un fichier dans la table à l'aide de charge commande.
Vous pouvez insérer de nouvelles données dans la table en utilisant sélectionnez requête.
oui, vous avez raison
Si j'ai un fichier où une ligne = une ligne (STRING tweet) de mon tableau de la Ruche, comment puis-je insérer mes données correctement ?
vous aurez une seule colonne de la table de sorte que vous pouvez charger à chaque ligne comme une ligne
Grâce Balaswamy. Mais 2 points ne sont pas clairs pour moi. Le fichier doit être téléchargé sur le cluster dans un premier temps pour être chargé dans un deuxième temps, je ne sais pas comment faire. Et deuxième point, je stocke mes données dans un fichier à chaque fois que je veux stocker des données dans la Ruche ? Et si j'en ai 3 de la charge de requêtes par seconde...? Son n'est pas optimal, je suppose ?
OriginalL'auteur Balaswamy Vaddeman
Si vous avez déjà un tableau pre_loaded_tbl avec quelques données. Vous pouvez utiliser une astuce pour charger les données dans votre tableau avec la requête suivante
Veuillez également noter que "my_data" est indépendante de toutes les données dans la pre_loaded_tbl. Vous pouvez sélectionner toutes les données et écrire le nom d'une colonne (ici my_data et my_column). La ruche n'en a pas besoin pour avoir le même nom de colonne. Cependant la structure de l'instruction select doit être la même que celle de votre tweet_table. Vous pouvez utiliser la limite de déterminer combien de fois vous pouvez insérer dans le tweet_table.
Toutefois si vous n'avez pas créé une table, vous devez charger les données à l'aide de la copie de fichier ou de charger des données des commandes dans les réponses ci-dessus.
réponses ci-dessus montre comment vous pouvez insérer toutes les données et ne pas exiger d'avoir les mêmes données dans le deuxième tableau.
L'a obtenu. Merci un tas.
OriginalL'auteur Animesh Raj Jha
Essayer de l'utiliser avec des guillemets simples dans les données:
Il n'y a pas de réponse simple, d'autres que cette réponse.
OriginalL'auteur Puneet Sharma
J'ai fait face à un problème similaire j'ai donc utilisé de l'impala pour insérer la ligne dans ma table, et il a travaillé pour la même requête. Cela fonctionne pour vous.
OriginalL'auteur kuldeep singh
Si la table est sans partition, puis le code sera,
Insérer dans la table
table_name
sélectionnez col_a,col_b,col_c deanother_table(source table)
--ici toute condition peut être appliqué, par exemple la limite, group by, order by, etc...
Si le tableau est avec les partitions puis le code sera,
ensemble de la ruche.exec.dynamique.partition=true;
ensemble de la ruche.exec.dynamique.la partition.mode=nonstrict;
insérer dans la table
table_name
partition(partition_col1
,paritition_col2
)sélectionnez col_a,col_b,col_c,partition_col1,partition_col2
de
another_table(source table)
--ici toute condition peut être appliqué, par exemple la limite, group by, order by, etc...
OriginalL'auteur Dhrub