0

알고리즘을 실행하기 전에 스파크의 데이터를 사전 처리해야합니다. 사전 처리 논리 중 하나는 텍스트에서 중지 단어를 제거하는 것이 었습니다. StopWordsRemover를 실행 해 보았습니다. StopWordsRemover는 입출력이 필요하고 Array [String]이어야합니다. 프로그램을 실행 한 후 최종 열 출력은 문자열 모음으로 표시되며 일반 문자열이 필요합니다.사전 처리시 텍스트에서 스톱 워드를 제거하는 방법

내 코드는 다음과 같습니다.

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 

내 출력 문자열처럼하지만 문자열의 배열로한다. 이것을 할 수있는 방법이 있습니까? 나는 데이터 프레임에서 열의 출력을 문자열로 요구한다.

또한 스파크 프로그램의 텍스트에서 불용어를 제거하려면 아래 옵션에 대한 제안이 필요합니다. SparkMlib

  • 스탠포드 CoreNLP 라이브러리에서

    1. StopWordsRemover.

    거대한 파일을 구문 분석 할 때 성능을 향상시키는 옵션은 무엇입니까?

    도움을 주시면 감사하겠습니다.

    미리 감사드립니다.

  • 답변

    0

    첫 번째 항목에만 관심이있는 것이 확실한 경우이 항목을 사용하여 문자열 배열 대신 df.collect()[0] 문자열을 가져올 수 있습니다.

    그러나 배열을 탐색하여 각 항목을 가져 오는 한 여기에 문제가 없어야합니다.

    궁극적으로 HiveDF는 RDD [String]을 제공하고 RDD에서 변환하면 Array [String]가됩니다.

    관련 문제