如何使用Apache Edgent过滤元组流

时间:2016-09-19 13:25:06

标签: java apache-edgent

我根据此manual创建了一个源函数。

public static void main(String[] args) throws Exception {
    DirectProvider dp = new DirectProvider();
    Topology top = dp.newTopology();

    final URL url = new URL("http://finance.yahoo.com/d/quotes.csv?s=BAC+COG+FCX&f=snabl");

    TStream<String> linesOfWebsite = top.source(queryWebsite(url));
}

现在我想过滤这个流。我有类似的想法:

TStream<Iterable<String>> simpleFiltered = source.filter(item-> item.contains("BAX");

哪个不行。有人知道如何过滤流吗?我不想更改请求网址以提前进行过滤。

1 个答案:

答案 0 :(得分:0)

从提供的信息中很难说清楚。运行拓扑需要dp.submit(top)。过滤器代码不指定使用指定的URL发生的项目。如,

...
TStream<String> linesOfWebsite = top.source(queryWebsite(url));
linesOfWebsite.print(); // show what's received

TStream<String> filtered = linesOfWebsite.filter(t -> t.contains("BAC"));
filtered.sink(t -> System.out.println("filtered: " + t));

dp.submit(top);  // required