2012-08-16 5 views
8

J'ai quelques données dans HIVE, et je voudrais le voir dans LibreOffice.Exportation de HIVE vers un CSV

Comment exporter ces données et importer ultérieurement sur LibreOffice

+1

Bienvenue sur le StackOverflow! Qu'avez-vous essayé jusqu'ici et quelles sont les difficultés que vous rencontrez avec votre approche actuelle? – Olaf

+0

J'ai créé le script Perl: Utilisez Text :: CSV; My $ csv = Text :: CSV-> new() ou die "Impossible d'utiliser CSV:" .Text :: CSV-> error_diag(); $ csv-> eol ("\ r \ n"); While (my $ line = readline) { chomp $ line; mes @cols = split/\ x01 /, $ line; $ csv-> print (* STDOUT, \ @cols); } – user1356713

Répondre

0

Vous pouvez spécifier et personnaliser la façon de stocker vos tables de mécanisme Ruche SerDe. Merci à ogrodnek l'utilisateur sur GitHub, il est CSV SerDe mise en œuvre.

C'est une sorte d'obsolète (ruche 0.5) mais peut être facilement adopté pour une nouvelle version de ruche. Tout ce que je devais faire pour réussir avec elle - juste changer construire config à ma distribution de ruche et la version (j'ai utilisé pom.xml pour Maven dans kunkunur de la demande de pull) et en ajoutant ces lignes dans un CSVSerde.java pour satisfaire nouvelle API:

import org.apache.hadoop.hive.serde2.SerDeStats; 
.... 
.... 
@Override 
public SerDeStats getSerDeStats() { 
// no support for statistics 
return null; 
} 

Ensuite, vous pouvez juste lancer hadoop dfs -get /table/or/partition/location /local/destination (ou même utiliser un -chat avec des tuyaux ou sortie de fichier unique) pour charger des données de Hadoop - il sera déjà au format CSV.

21

Basé sur https://issues.apache.org/jira/browse/HIVE-1603:

$ hive 
hive> set hive.exec.compress.output=false; 
hive> create table csv_dump ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' as 
hive> select ...YOUR_SELECT_QUERY_HERE...; 
$ hadoop dfs -cat /user/hive/warehouse/csv_dump/* > ~/csv_dump.csv 
+1

La dernière commande est maintenant obsolète. La nouvelle commande équivalente est presque la même - "hadoop fs -cat/utilisateur/hive/entrepôt/csv_dump/*> ~/csv_dump.csv".La clé à retenir est que hadoop carte ruche des tables à fs namespace/user/ruche/entrepôt. – sandeepkunkunuru

1

J'ai eu un problème similaire et voici comment j'ai pu y remédier.

Etape 1 - Loaded les données de la table ruche dans une autre table de la manière suivante

DROP TABLE IF EXISTS TestHiveTableCSV; CREATE TABLE TestHiveTableCSV ROW FORMAT DELIMITED CHAMPS TERMINES PAR ',' LIGNES TERMINES PAR '\ n' AS SELECT Column List FROM TestHiveTable;

Étape 2 - Copié le blob de l'entrepôt ruche vers le nouvel emplacement avec l'extension appropriée

Start-AzureStorageBlobCopy -DestContext $destContext -SrcContainer "Source conteneur" -SrcBlob "hive/warehouse/TestHiveTableCSV/000000_0" -DestContainer "Destination conteneur" ` - DestBlob "CSV/TestHiveTable.csv"

Espérons que cela aide!

Cordialement, dattātreya Sindol (Datta) http://dattatreysindol.com

Questions connexes