2017-05-18 1 views
0

파일 데이터 스트림을 처리하여 단어 수를 계산하는 스파크 스트리밍 응용 프로그램을 실행하려고합니다. 내가 읽고있는 디렉토리는 Windows입니다. 위와 같이 "Users/Name/Desktop/Stream"과 같은 로컬 디렉토리를 사용합니다. HDFS가 아닙니다. 데스크톱에서 "스트림"으로 폴더를 만들었습니다. Spark Streaming 응용 프로그램을 시작한 후 일부 텍스트 파일을 'Stream'폴더에 추가했습니다. 하지만 내 스파크 응용 프로그램은 파일을 읽을 수 없습니다. 항상 빈 결과를 제공합니다. 내 코드는 다음과 같습니다.Windows에서 StreamingContext.textFileStream의 올바른 디렉토리 경로 형식은 무엇입니까?

//args(0) = local[2] 
object WordCount { 
def main(args: Array[String]) { 
    val ssc = new StreamingContext(args(0), "word_count",Seconds(5)) 
    val lines = ssc.textFileStream("Users/name/Desktop/Stream") 
    val words = lines.flatMap(_.split(" ")) 
    val wordCounts = words.map(x => (x, 1)).reduceByKey(_ + _) 
    wordCounts.print() 
    ssc.start() 
    ssc.awaitTermination() 
    } 
} 

출력 : 얻기 빈 데이터 나뿐만 아니라 C:/Users/name/Desktop/Stream과 경로를 제공하려고 매 5 초마다

17/05/18 07:35:00 INFO Executor: Running task 0.0 in stage 71.0 (TID 35) 
------------------------------------------- 
Time: 1495107300000 ms 
------------------------------------------- 

은 - 여전히 같은 문제와 응용 프로그램이 파일을 읽을 수 없습니다.

잘못된 디렉토리 경로를 알려주는 사람은 누구나 안내 할 수 있습니까?

답변

0

코드가 올바르므로 에만 문제는 디렉토리에 대한 적절한 경로를 사용하는 것입니다. 로컬 파일 시스템을 나타내는 file:// 접두어를 사용하면 file://C:/Users/name/Desktop/Stream이됩니다.

한 번에 한 단계 씩 시작하여 우리의 이해가 같은 수준인지 확인하십시오.

Spark Streaming 응용 프로그램을 실행할 때 응용 프로그램을 시작하는 디렉터리와 동일한 디렉터리에 디렉터리를 만듭니다 (예 : Stream). 응용 프로그램이 로컬 디렉토리에서 제대로 작동하는지 확인하면 Windows의 모든 디렉토리에서 읽을 수 있도록 전역 적으로 수정합니다 (여전히 필요한 경우).


또한 모니터링 디렉토리에 파일을 만들려면 작업으로 파일을 "이동"확인해 주시기 바랍니다는 (- StreamingContext를 볼 처리로 부분 쓰기 파일을 표시합니다) 원자 수있다.

파일은 동일한 파일 시스템 내의 다른 위치에서 파일을 "이동"하여 모니터링 대상 디렉토리에 기록해야합니다.


당신이 codedirectory 경로에서 볼 수 있듯이

결국 「랩」됩니다 하둡의 File 그렇게 문제가 경로 동의하도록 설득하는 것입니다 사용 : 내가 같이 사용하는 경우

if (_path == null) _path = new Path(directory) 
+1

을 당신이 말한, 아래에 오류가 발생했습니다 17/05/18 09:28:44 WARN FileInputDStream : 새 파일을 찾는 중 오류가 발생했습니다. 잘못된 FS : file : // C :/Users/SRIKANTH/Desktop/Stream, 예상 : file : /// – Ramesh

+0

'file : //'을'file : ///'을 사용하도록 바꾸고 새로운 파일을 추가 할 수 있습니까? –

+0

val line = ssc.textFileStream ("file : /// C :/Users/name/Desktop/Stream") 경로를 수정했습니다. 여전히 같은 문제입니다. 빈 결과 제공. – Ramesh

관련 문제