2016-03-13 3 views
0

J'essaye de charger un fichier CSV en utilisant Pig, mais le fichier CSV contient déjà des 'virgules' dans certaines colonnes, donc utiliser PigStorage (',') me donne de mauvaises réponses.Charger CSV en utilisant Pig

Je l'ai déjà essayé ces:

REGISTER /......./piggybank.jar 

LOAD '...PATH_TO_INPUT_FILE' USING CSVLoader(',') AS (...fieldnames) 

et

LOAD '...PATH_TO_INPUT_FILE' USING CSVExcelStorage(',') AS (...fieldnames) 

Les deux tous sont ne pas donner le résultat souhaité. L'enregistrement qui ne contient pas de virgule dans leurs valeurs fonctionne correctement mais le reste ne le sont pas.

+0

Pouvez-vous envoyer quelques lignes d'entrée de l'ensemble de données que vous essayez de traiter? – CodeReaper

+0

Vous avez donc un fichier CSV avec des valeurs séparées par des virgules, mais certaines des valeurs contiennent des virgules et ne sont pas échappées d'aucune façon? Si c'est le cas, vous êtes en difficulté ... – LiMuBei

Répondre

0

Avez-vous défini la méthode CSVLoader() ou CSVExcelStorage()?

DEFINE CSVLoader org.apache.pig.piggybank.storage.CSVLoader(); 

OU

DEFINE CSVExcelStorage() org.apache.pig.piggybank.storage.CSVExcelStorage(); 

Ou bien vous pouvez vous référer à la méthode directement comme celui-ci

LOAD 'test.txt' USING org.apache.pig.piggybank.storage.CSVLoader(',') 
LOAD 'test.txt' USING org.apache.pig.piggybank.storage.CSVExcelStorage(',') 
+0

N'avez pas essayé le DEFINE, mais essayé les deux autres: CHARGER 'test.txt' EN UTILISANT org.apache.pig.piggybank.storage.CSVLoader (',') CHARGER 'test.txt' EN UTILISANT org.apache.pig.piggybank.storage.CSVExcelStorage (',') Cela ne fonctionne pas. –