pig-我可以将结果fs-ls粗化为一个元组吗?

67up9zun  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(571)

我对Pig不熟悉。
在Pig的剧本里,我可以这样做:

fs -ls

返回:

drwx------   - user group          0 2013-08-28 00:00 .Trash
drwx------   - user group          0 2013-08-02 19:19 .staging
...
...
...

有没有办法让我粗略估计一下考试的结果 fs -ls 变成元组?

b4lqfgs4

b4lqfgs41#

使用javajar,您可以很容易地完成这些事情:首先,您应该在目录外创建序列文件。然后在加载程序中,您应该像下面这样放置代码。然后使用这个加载程序加载序列文件,结果将如预期的那样。
在(loader的)getnext方法中,您应该根据自己的目的编写这样的代码

ProcessBuilder scanProcess = new ProcessBuilder("strings",file_name);
    final Process process = scanProcess.start();
    InputStream is = process.getInputStream();
    InputStreamReader isr = new InputStreamReader(is);
    BufferedReader br = new BufferedReader(isr);
    String line,resLine="";
    while ((line = br.readLine()) != null)
    {
        if(!line.isEmpty())
        {
            resLine += line;
        }
    }
    protoTuple.add(resLine);
    return tupleFactory.newTuple(protoTuple);

命令执行的结果将存储在resline中。对于传递命令行参数,您可以浏览processbuilder并处理更多信息

相关问题