2014-10-28 2 views
0

spark using scala의 자습서를 따르고 this dataset from wikimedia으로 작업하고 있습니다. 저는 언어별로 총 페이지 뷰의 히스토그램을 생성하는 데 관심이있었습니다. 첫 번째 열은 언어이고 세 번째 열은 페이지 뷰입니다. 그러나 다음 코드를 실행할 때 ArrayIndexOutOfBondException 오류가 발생하여 해당 데이터베이스의 일부 줄에 세 번째 열에 대한 필드가없는 것 같습니다.데이터베이스에 누락 된 필드가있는 행을 무시하는 방법

scala> val tuples = pagecounts.map(line => line.split(" ")) 
scala> val keyValuePairs = tuples.map(line => (line(0).substring(0, 2), 
    line(2).toInt)) 
scala> keyValuePairs.reduceByKey(_+_, 1).collect 

나는 데이터베이스에서 세 번째 열에 대한 필드를 포함 만 라인에 대한 쿼리를 실행할 수 있도록 사람이 어떻게 세 번째 열 누락 필드가 선을 무시하는 생각을 가지고 있습니까?

답변

2

3 개의 필드가있는 필드 만 조작 할 수 있도록 페이지 수를 필터링하려고합니다. filter을 사용하여 다음을 선택하십시오.

val tuples = pagecounts.map(line => line.split(" ").filter(_.length == 3)) 
+0

감사합니다. Bob. 그러나 그것이 밝혀 졌을 때 실종 필드는 문제가 아니 었습니다. 나는 왜 내가 아직도 한계를 벗어난 오류를 낳고 있는지 전혀 모른다. 중국어 또는 일본어 등의 문자가 포함 된 파일 일 수 있습니까? – MetallicPriest

+0

스택 추적 또는 더 많은 컨텍스트가 없으면 말할 수 없습니다. 범위 밖의 배열 오류가 확실합니까? 문자열 길이가 틀리면 "java.lang.StringIndexOutOfBoundsException : String index of range"오류가 발생할 수 있습니다. –

관련 문제