L'exportation au format csv dans beeline ruche
Je suis en train d'exporter ma table de la ruche comme un csv dans beeline ruche. Lorsque je lance la commande !sql select * from database1 > /user/bob/output.csv
il me donne une erreur de syntaxe.
J'ai réussi à connecter à la base de données à ce point à l'aide de la commande ci-dessous. La requête sorties des résultats corrects sur console.
beeline -u 'jdbc:hive2://[databaseaddress]' --outputformat=csv
Aussi, pas très claire dans la mesure où le fichier se termine. Il doit être le chemin d'accès au fichier dans hdfs correct?
OriginalL'auteur Defcon | 2016-09-19
Vous devez vous connecter pour publier un commentaire.
Lors de la ruche version est au moins 0.11.0 vous pouvez exécuter la commande:
de la ruche/beeline pour stocker la table dans un répertoire sur le système de fichiers local.
Alternativement, avec beeline, enregistrez votre requête SELECT dans yourSQLFile.sql et de l'exécution:
Aussi cela va stocker le résultat dans un fichier dans le système de fichiers local.
De la ruche, pour stocker les données quelque part dans HDFS:
ensuite, vous pouvez collecter les données dans un fichier local à l'aide de:
C'est une autre option pour obtenir les données à l'aide de beeline seulement:
De travail sur:
--outputformat
ne fonctionne pas si vous le placer après le-e
requête ou-f
fichier à interroger les commutateurs. Étrange, je pensais que c'étaient des arguments nommés, mais semble beeline ignore tout args après la requête. J'ai continué à obtenir le format de tableau par défaut.S'il vous plaît ajouter les versions depuis écosystème Hadoop est un travail en cours.
Je suis en utilisant ce sur AWS, si je lance
beeline --version
il me montre la Ruche 2.3.2-amzn-0Merci beaucoup pour cette. Votre CLI déclaration m'a vraiment aidé à déplacer mon projet en avant!
OriginalL'auteur ozw1z5rd
Vous disposez de différentes options.
1) Vous pouvez contrôler jusqu'à un point sur la façon dont le beeline sortie est faite et puis il suffit de l'enregistrer dans un fichier avec linux. Par exemple
beeline --outputformat=csv2 xxx > sortie.csv ( voir les paramètres de la ligne droite ci-dessous )
2) Pour plus de contrôle et une meilleure performance que j'ai écrit un peu de Java outil la fois. C'est vraiment seulement quelques lignes de code jdbc.
3) et enfin, comme Ana a écrit. Que vous avez peut écrire juste un tableau dans une table externe dans HDFS et de spécifier le format de sortie que vous voulez.
Comme
créer une table externe de test de LIGNE FORMAT délimité par des fields terminated by ' | " localisation "/tmp/mondossier" select * from matable;
vous pouvez obtenir alors que la production dans le système de fichiers local avec
hadoop fs -getmerge /tmp/mondossier myoutput.csv
OriginalL'auteur AMRESH PANDEY