我根据此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");
哪个不行。有人知道如何过滤流吗?我不想更改请求网址以提前进行过滤。
答案 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