해당 행과 열의 수가 같은 두 개의 대형 (예 : 300,000 * 100) 직사각형 CSV 파일이 있습니다. 두 파일의 각 해당 셀 사이에 차이가 있는지 찾아야합니다. 프로그램은 서로 다른 행과 셀 번호와 다른 내용을 o/p해야합니다.2 csv 파일의 차이점을 효율적으로 찾는 방법
행/열의 수가 매우 많기 때문에 가장 효율적인 방법을 찾고 있습니다.
가 처음에 내가 AWK와 함께 탐험을 시작하고, this 유망 보였지만, 내가 전에 AWK와 함께 일하지 않은 100 열 대신 예를다음과 같이 2이 연장에 실패했다, 내가 시도한 자바를 이용한 일종의 무차별 접근법 - 2 차원 배열로 파일을로드한다. 주어진 컬럼에서 각각 작동하는 100 개의 스레드를 초기화하고, 차이가 발견되면 각 스레드는 row, cell 및 diff 값을 HashMap (Key로 열 번호 포함)에 넣습니다. 배열로 두 번째 파일을 읽는 동안 비교하여 비교를 시도했지만 실제로 각 셀을 방문하고 있기 때문에 속도가 빠를 수는 없습니다 (비교를 완료하는 데 약 8 시간이 걸렸습니다)
' awk 또는 Java에서 m ok. 다른 완전히 다른 접근 방식을 사용할 수 있습니다.
'diff'를 사용하여 파일의 차이점을 확인하는 것은 어떨까요? 출력은 파일에 저장되거나 스크립트에서 사용되어 더 이상 분석하고 적절한 조치를 취할 수 있습니다. –
바로 이것이 현재 프로그램이하는 일입니다. diff는 단지 전체 줄을 출력하고, 많은 경우에 왼쪽 파일에서 10 줄, 오른쪽 파일에서 10 줄을 말한다. 따라서 수동으로 복사하여 각 열을 시각적으로 비교하고 비교해야합니다. 행의 90 %에는 약간의 차이가 있습니다. diff o/p가 꽤 큽니다. – Plaiska
그리고 그것을 내보내는 것이 어떨까요? 완전히 그것의 기능으로 속도가 아니지만 일부 매트릭스 검색을 여러 탭에 적용 할 수 있으며 배경 색상을 변경할 수 있다고 생각하십니까? –