我正在努力运行此简单的级联程序。由于某种原因,它什么也不做。至少我希望它能打印记录。任何帮助,将不胜感激。

package com.myLearning.cascading;

import cascading.flow.Flow;
import cascading.flow.FlowDef;
import cascading.flow.local.LocalFlowConnector;
import cascading.operation.Debug;
import cascading.operation.expression.ExpressionFilter;
import cascading.pipe.Each;
import cascading.pipe.Pipe;
import cascading.scheme.Scheme;
import cascading.scheme.local.TextDelimited;
import cascading.tap.SinkMode;
import cascading.tap.Tap;
import cascading.tap.local.FileTap;
import cascading.tuple.Fields;

public class operations_example
{
    public static void main(String[] args)
    {
    Scheme sourceScheme = new TextDelimited(new Fields("username", "age"), true, ",");
    String sourcePath = "C:/Users/Desktop/cascading/data/names.txt";
    Tap sourceTap = new FileTap(sourceScheme, sourcePath);

    Scheme targetScheme = new TextDelimited(new Fields("username", "age"), true, ",");
    String targetPath = "C:/Users/Desktop/cascading/data/output2.txt";
    Tap targetTap = new FileTap(targetScheme, targetPath, SinkMode.REPLACE);

    Pipe dataPipe = new Pipe("data");
    dataPipe = new Each(dataPipe, new Debug());
    ExpressionFilter filter = new ExpressionFilter("age >= 30", Integer.TYPE);

    dataPipe = new Each( dataPipe,new Fields("username","age"), filter);

    FlowDef flowdef = FlowDef.flowDef().
            addSource(dataPipe, sourceTap).
            addTailSink(dataPipe, targetTap);

    Flow flow = new LocalFlowConnector().connect(flowdef);
    flow.stop();
    }
}

最佳答案

您没有执行该流程。

创建流程后,调用complete()(阻止)或start()来执行它。调用stop(),而不是来执行该流程。

http://docs.cascading.org/impatient/impatient1.html
http://docs.cascading.org/cascading/1.2/javadoc/cascading/flow/Flow.html#complete()

关于hadoop - 在本地模式下运行一个简单的层叠程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45534925/

10-12 22:53