アルゴリズムを実行する前にsparkのデータを前処理する必要があります。 前処理ロジックの1つは、ストップワードをテキストから削除することでした。私はスパークStopWordsRemoverで試してみました。 StopWordsRemoverは入力と出力がArray [String]である必要があります。プログラムを実行した後、最終的な列の出力は文字列のコレクションとして表示されます。プレーンな文字列が必要です。sparkの前処理でテキストからストップワードを削除する方法
マイコードは次のとおりです。
val tokenizer: RegexTokenizer = new RegexTokenizer().setInputCol("raw").setOutputCol("token")
val stopWordsRemover = new StopWordsRemover().setInputCol("token").setOutputCol("final")
stopWordsRemover.setStopWords(stopWordsRemover.getStopWords ++ customizedStopWords)
val tokenized: DataFrame = tokenizer.transform(hiveDF)
val transformDF = stopWordsRemover.transform(tokenized)
実際の出力
["rt messy support need help with bill"]
必要な出力:
rt messy support need help with bill
私の出力が文字列のようなものではなく、文字列の配列としてすべきです。これを行う方法はありますか?私は文字列としてデータフレーム内の列の出力を必要とします。
また、sparkプログラムのテキストからストップワードを削除するには、以下のオプションについての提案が必要です。
- SparkMlib
- スタンフォードCoreNLPライブラリからStopWordsRemover。
巨大なファイルを解析するときにパフォーマンスが向上するオプションはどれですか。
助けてください。
ありがとうございます。