2017-03-09 3 views
0

私が理解できないEclypseでmapreduceを使用してエラーが発生しました。mapreduceマップクラスの変数をインポート

いくつかのフィーチャをマッピングする前に、新しいフィーチャをマップするために使用する既知の特性(キーワード)を持つファイルをインポートする必要があります。私は最初にオーバーライドの後にそれをインポートしますが、私はたくさんの行を持っており、各マップに対してインポートするので、計算時間が非常に長くなります。 私は一度だけ、それをインポートし、クラスマップでは、その後、それを使用するクラスと@Override間に私の変数をインポートしようが、私は、次のエラーを取得:

私は後に取得
public static class Map extends Mapper<LongWritable, Text, Text, Text > { 

    HashSet<String> word = new HashSet<String>(); 
     BufferedReader BR = new BufferedReader(new FileReader(
       new File("/home/test"))); 
     String token; 
     while((token = BR.readLine()) != null){ 
      word.add(token); 
     } 

    @Override 
    public void map(LongWritable key, Text value, Context context) 
      throws IOException, InterruptedException { 

「トークン文字列;」エラー:;:トークン上の 構文エラー、ConstructorHeaderName代わり

と「公共のボイド」の後にエラーが期待トークン上 構文エラーは「」、{エラーは、「ながら」の後にこのトークン

後に予想されます: この行に複数のマーカーがあります - トークンの構文エラー "、"、;予想される - トークンの構文エラー "、"、;予想 - トークンの構文エラー「(」、;? 予想は - だから私の質問は、私はマップクラスではなく@Override前に、使用する変数をインポートすることが可能であると私はどのように行うことができます

を上書きしますその私が使用しようとする最初の答えでは?


"のパブリックstatic ..."

public static Set<String> newHashSet(String... strings) { 
     HashSet<String> words = new HashSet<String>(); 
     BufferedReader BR = new BufferedReader(new FileReader(
       new File("/home/test"))); 
     String token; 
     while((token = BR.readLine()) != null){ 
      words.add(mot); 
     } 
     return words; 
    } 

しかし、再び、私はエラーが発生します。

私は私はこのライン で 複数のマーカーを取得し、私のファイルを読み込むしようとすると - リソースリーク - 未処理の例外型 にFileNotFoundException : 未処理の例外タイプのIOException

「BR」

を閉じたことはなく、whileループで

私のファイルをインポートして、後でmapreduceタスクで条件として使用するためにデータを保存したいだけです。

+0

を分散

あなたは完全なコードと完全なスタックトレースを投稿することができますか? – LppEdd

+0

whileループはコンストラクタまたはメソッドの一部ではありません。そのため、このエラーが発生します。 – john16384

答えて

0

コードをジャズアップするには、2つの重要なことを探しています。

  1. マップには、setUp()Map()およびCleanup()機能があります。
  2. 機能は、セットアップでいくつかの外部ファイルを読み込み、Map()内の個別の行をETLし、Cleaup内のすべてのリソースをクリーンアップするために使用できます。
  3. 分散キャッシュは、MRファームワークによって提供されるサービスです。ファイルを配布したドライバでは、MapまたはReduceが動作しているすべてのデータノードでファイルを使用できます。

ご理解のため、以下のリンクをご覧ください。キャッシュ、セットアップ()マップとクリーンアップ()

  1. http://bytepadding.com/big-data/map-reduce/map-side-joins-in-map-reduce/
  2. http://bytepadding.com/map-reduce/
関連する問題