2016-09-19 5 views
1

私はこのmanualに従ってソース関数を作成しました。Apache Edgentでタプルのストリームをフィルタリングする方法

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"); 

これはうまくいかない。誰もストリームをフィルタリングする方法を知っていますか?私はフィルタリングを行う前にリクエストURLを変更したくありません。

答えて

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 
関連する問題