[HADOOP] 어쨌든 두 개의 avro 파일을 비교하여 데이터에 어떤 차이가 있는지 확인하십시오.
HADOOP어쨌든 두 개의 avro 파일을 비교하여 데이터에 어떤 차이가 있는지 확인하십시오.
이상적으로, 나는 SAS proc처럼 포장 된 것을 원한다.
데이터 세트가 동등한 지 확인하기 위해 한 가지 방법을 찾았지만 꽤 비효율적입니다. 100 개의 행과 5 개의 열 (하나의 키와 4 개의 부동 함수)이있는 두 개의 avro 파일이 있다고 가정합니다. 테이블을 조인하고 데이터 세트의 일치하는 기능의 차이 인 새 변수를 만들면 0이 아닌 차이가 데이터에서 일부 불일치가됩니다. 거기에서 위의 요구 사항 전체 목록을 쉽게 결정할 수 있지만보다 효율적인 방법이있을 수있는 것처럼 보입니다.
해결법
-
==============================
1.AVRO 파일은 스키마와 데이터를 별도로 저장합니다. 즉, 스키마 파일이 있어야하는 데이터가있는 AVRO 파일 옆에 일반적으로 * .avsc와 같은 의미입니다. 이렇게하면 작업을 세 부분으로 나눌 수 있습니다.
AVRO 파일은 스키마와 데이터를 별도로 저장합니다. 즉, 스키마 파일이 있어야하는 데이터가있는 AVRO 파일 옆에 일반적으로 * .avsc와 같은 의미입니다. 이렇게하면 작업을 세 부분으로 나눌 수 있습니다.
다음은 스키마의 예입니다.
{"namespace": "example.avro", "type": "record", "name": "User", "fields": [ {"name": "name", "type": "string"}, {"name": "favorite_number", "type": ["int", "null"]}, {"name": "favorite_color", "type": ["string", "null"]} ] } {"namespace": "example.avro", "type": "record", "name": "User", "fields": [ {"name": "name", "type": "string"}, {"name": "favorite_number", "type": ["int"]}, {"name": "favorite_color", "type": ["string", "null"]}, {"name": "test", "type": "int"} ] }
결과는 다음과 같습니다.
[localhost:temp]$ python compare.py Field "test" exists in table2 and does not exist in table1 Field "favorite_number" has type "[u'int', u'null']" in table1 and type "[u'int']" intable2
이전에는 테이블에 대한 비교 함수를 개발했으며 일반적으로 다음과 같이 보입니다.
일반적으로 그러한 기능의 개발 및 디버깅에는 영업일 기준 4-5 일이 소요됩니다.
from https://stackoverflow.com/questions/26351017/is-there-anyway-to-compare-two-avro-files-to-see-what-differences-exist-in-the-d by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 파일 이름의 재발없이 hadoop 역 색인 (0) | 2019.08.02 |
---|---|
[HADOOP] 문자 메시지에서 문자열의 돼지 수 발생 (0) | 2019.08.02 |
[HADOOP] 로깅 정보없이 하이브 스크립트의 결과를 파일로 내보내기 (0) | 2019.08.01 |
[HADOOP] Hadoop MapReduce : Mapper-Reducer의 키로 두 값 (0) | 2019.08.01 |
[HADOOP] MapReduce WordCount 프로그램 - 출력이 입력 파일과 동일합니다. (0) | 2019.08.01 |