나는 일련의 단계를 통해이스칼라/스파크가있는 요소의 발생 횟수를 계산하는 방법은 무엇입니까?
00|905000|20160125204123|79644809999||HGMTC|1||22|7905000|56321647569|||34110|I||||||250995210056537|354805064211510||56191|||38704||A|||11|V|81079681404134|5||||SE|||G|144|||||||||||||||Y|b00534589.huawei_anadyr.20151231184912||1|||||79681404134|0|||[email protected]@+1{79098509982}2{2}3{2}5{79644809999}6{0000002A7A5AC635}7{79681404134}|20160125|
같은 요소의 목록이 포함 된 파일을 가지고,이
(902996760100000,CompactBuffer(6, 5, 2, 2, 8, 6, 5, 3))
905000 같은 요소의리스트로 변환 관리 은 키이고 6, 5, 2, 2, 8, 6, 5, 3은 값입니다. 값은 1에서 8까지의 숫자가 될 수 있습니다. spark를 사용하여이 값의 발생 횟수를 세는 방법이 있습니까? 결과는 다음과 같습니다.
(902996760100000, 0_1, 2_2, 1_3, 0_4, 2_5, 2_6, 0_7, 1_8)
나는 다른 블록과 직원,하지만 그 꽤하지 않을 경우 함께 할 수있는, 그래서 스칼라/스파크에서 사용할 수있는 instrumets가 있는지 궁금하네요.
이것은 내 코드입니다.
class ScalaJob(sc: SparkContext) {
def run(cdrPath: String) : RDD[(String, Iterable[String])] = {
//pass the file
val fileCdr = sc.textFile(cdrPath);
//find values in every raw cdr
val valuesCdr = fileCdr.map{
dataRaw =>
val p = dataRaw.split("[|]",-1)
(p(1), ScalaJob.processType(ScalaJob.processTime(p(2)) + "_" + p(32)))
}
val x = valuesCdr.groupByKey()
return x
}
최적화에 대한 조언을 보내 주시면 감사하겠습니다. 나는 scala/spark에 정말로 새로운 사람입니다.
질문의 범위와 관련이없는 코드와 정보를 제거하면 질문을 쉽게 읽을 수 없게됩니다. – cheseaux
정식 [단어 수 예] (http://spark.apache.org/examples.html)를 볼 수 있습니다. – erip