[HADOOP] 매트릭스 포맷 변환 끓는
HADOOP매트릭스 포맷 변환 끓는
좋아, 그래서, 끓는에서 우리는 쉽게 행렬 API를 사용하여, 매트릭스 작업 할 수 있습니다, 그것은 확인는 - 같은 방법으로 :
val matrix = Tsv(path, ('row, 'col, 'val))
.read
.toMatrix[Long,Long,Double]('row, 'col, 'val)
우리가 일반적으로 쓰기 좋아하지만 어떻게, 형식에서 해당 형식에 행렬을 변환 할 수 있습니까? 섬세한 방법이 있습니까?
1 2 3
3 4 5
5 6 7
에
1 1 1
1 2 2
1 3 3
2 1 3
2 2 4
2 3 5
3 1 5
3 2 6
3 3 7
나는이 거대한 크기의 행렬에 대한 작업을해야, 내가 행과 열의 수를 모른다 (예를 들어 파일을? N × M 개의 경우 크기를 제공 할 수 있습니다).
나는 TextLine이와 떨어지게 (인수 ( "입력")) 만들려고하지만 난 줄 번호를 계산하는 방법을 몰라. 내가 어떻게 포맷을 처리 할 수있는 다른 방법이 r에 MB, 하둡에 행렬을 변환 할? 그것은 끓는 함께 할 수 있습니까?
해결법
-
==============================
1.아래의 대답은 내하지만, 질문에 넣어했다 OP의 대답은 아니다.
아래의 대답은 내하지만, 질문에 넣어했다 OP의 대답은 아니다.
여기에 내가 원하는 것을 출력한다, 무슨 짓을했는지입니다 :
var prev: Long = 0 var pos: Long = 1 val zeroInt = 0 val zeroDouble = 0.0 TextLine( args("a") ) .flatMap('line -> 'number) { line : String => line.split("\\s+") } .mapTo(('offset, 'line, 'number) -> ('row, 'val)) { (offset: Long, line: String, number: String) => pos = if(prev == (offset + 1)) pos + 1 else 1 prev = offset + 1 (offset + 1, number) } .filter('row, 'col, 'v) { (row: Long, col: String, v: String) => val (row, col, v) = line (v != zeroInt.toString) && (v != zeroDouble.toString) } .write(Tsv(args("c")))
from https://stackoverflow.com/questions/20020967/transforming-matrix-format-scalding by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] yum을 사용하여 아파치 스파크 설치 (0) | 2019.09.19 |
---|---|
[HADOOP] 이클립스 - - 모두 핵심 및 수학 폴더의 코끼리 조련사 수학 라이브러리의 클래스를 포함 하둡을 (0) | 2019.09.19 |
[HADOOP] 하둡에 타사 항아리를 포함 (0) | 2019.09.19 |
[HADOOP] 어떻게 pyspark 유사한 자바 파티션에 마루 파일을 작성하는? (0) | 2019.09.19 |
[HADOOP] - 스파크 제출 연결할 수 없습니다 (0) | 2019.09.19 |