Je vais avoir un script Pig qui se termine par le stockage de son contenu dans un fichier texte. Au cours d'un travail complètement différent, je veux lire les lignes de ce fichier et les analyser de nouveau dans Tuples. Les données dans foo peuvent contenir des charras avec des caractères utilisés lorsque vous enregistrez des Pig Bags/tuples comme {}(), etc. Je peux lire le fichier précédemment enregistré en utilisant le code like.Cochon: Reparse Strings en Tuples en Java
FileSystem fs = FileSystem.get(UDFContext.getUDFContext().getJobConf());
FileStatus[] fileStatuses = fs.listStatus(new Path("outputLocation"));
for (FileStatus fileStatus : fileStatuses) {
if (fileStatus.getPath().getName().contains("part")) {
DataInputStream in = fs.open(fileStatus.getPath());
String line;
while ((line = in.readLine()) != null) {
// Do stuff
}
}
}
Maintenant où // Do stuff
est, je voudrais analyser mon String dans un tuple. Est-ce possible/Pig fournit-il une API? Le plus proche que j'ai pu trouver est la fonction textToTuple de la classe StorageUtil, mais cela fait juste un Tuple contenant un DataByteArray. Je veux un tuple contenant d'autres sacs, tuples, charrays comme à l'origine pour que je puisse facilement récupérer les champs d'origine. Je peux changer le StoreFunc Je sauve le dossier original dedans, si cela aide.