我将有一个 Pig 脚本,最后将其内容存储在一个文本文件中。
STORE foo into 'outputLocation';
在一个完全不同的工作中,我想读取这个文件的行,并将它们解析回元组。foo 中的数据可能包含字符数组,其中包含保存 Pig Bags/tuples 时使用的字符,例如 { } ( ) 等。我可以使用类似的代码读取以前保存的文件。
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
}
}
}
现在在哪里// Do stuff
,我想将我的字符串解析回元组。这可能吗/Pig 是否提供 API?我能找到的最接近的是 StorageUtil 类 textToTuple 函数,但这只会生成一个包含一个 DataByteArray 的元组。我想要一个包含其他包、元组、字符数组的元组,就像它原来的那样,这样我就可以轻松地重新获取原始字段。如果有帮助,我可以更改保存原始文件的 StoreFunc。