키/값 쌍 RDD에 대한 질문이 있습니다.키/값 쌍 RDD
movie_horror_Conjuring.txt
movie_comedy_eurotrip.txt
movie_horror_insidious.txt
movie_sci-fi_Interstellar.txt
movie_horror_evildead.txt
내가 SC를 사용하여 입력 폴더에있는 파일을 읽기 위해 노력하고 있어요 :
나는 다음과 같이 파일의 내용과 영화의 대화 상자를 가지고 C:/download/input
폴더에 오 개 파일이 있습니다.
(C:/download/input/movie_horror_Conjuring.txt,values)
을 다음과 같이 내가 키/값을 얻을 wholeTextFiles는() 나는 내가 그룹에 각각의 장르가 함께 groupByKey()
를 사용하는 입력 파일을 가지고 작업을 수행하려합니다. 모든 공포 영화의 가치, 함께 코미디 영화 등등.
(horror, values)
대신 내가 필요로
(C:/download/input/movie_horror_Conjuring.txt,values)
(C:/download/input/movie_comedy_eurotrip.txt,values)
(C:/download/input/movie_horror_Conjuring.txt,values)
(C:/download/input/movie_sci-fi_Interstellar.txt,values)
(C:/download/input/movie_horror_evildead.txt,values)
를 다음과 같이 상기 코드 나에게 출력을 제공한다 (C:/download/input/movie_horror_Conjuring.txt,values)
val ipfile = sc.wholeTextFiles("C:/download/input")
val output = ipfile.groupByKey().map(t => (t._1,t._2))
이 방법을 생성 할 수있는 방법 출력은 다음과 같습니다 :
(horror, (values1, values2, values3))
(comedy, (values1))
(sci-fi, (values1))
일부 맵 및 분할 작업을 수행하여 키의 폴더 경로를 제거하여 파일 이름 만 가져 오지만 해당 값을 파일에 추가 할 수는 없습니다.
또한 나는 선이 values1, values2, values3 등의 계산 얻을 수있는 방법을 알고 싶습니다
내 최종 출력해야
같은 (공포, 100)
여기서 100은 값 1 = 40 행, 값 2 = 30 행 및 값 3 = 30 행에있는 행 수의 합계입니다.
그 작업이 도움말 – Ninja
에 대한 감사가 업데이트 된 대답을 확인 @Ninja! – avr
위대한! 이것은 잘 작동합니다. _ == '\ n'을 사용하는 대신 분할을 수행했습니다. 고맙습니다. – Ninja