2016-09-18 25 views
0

私はSparkを学んでいて、かなりシンプルなアプリを書くつもりです。 入力として、私は私がElasticSearchにそれを渡したい Sparkを使った文字列変換

INFO - {timestamp} - {path} - {json message} 
INFO - 124534234534534 - test.class - {"message": "something happened"] 

のように見えるログ文字列を、持っています。だから私は、{タイムスタンプ}を取り、それが

{"timestamp": "1234343132", "message": "something happened"} 

ようになっているはずですので、{JSONメッセージ}に新しいフィールドにそれを置く必要がある誰かがJavaを使用してこの変換で私を助けることができますか?

+1

ポイントで定義された関数を使用してRDDを作成SparkContext.textFile

JavaSparkContext sc = ...; JavaRDD<String> rdd = sc.textFile(...) 
  • mapを使用して

    Function<String, String> f = new Function<String, String>() { public String call(String s) { return ...; } } 
  • 読み出しデータは、あなたがこれを解決するために、独自の試みを含めることはできますか? –

  • +0

    私は簡単にスパークなしで純粋なJavaでそれを行う。変換(単語数ではない)のいくつかの例を見つけようとしました - それらはすべてスカラー上にあります。私が何かを見逃してしまった場合 - いくつかの記事または同様のサンプルを指摘してください – Andriy

    答えて

    1
    1. ログのラインを取り、JSON文字列を返すFunction<String, String>を作成します。 1.

      rdd.map(f);