개발

    [Linux] sed 명령어로 여러개의 파일 문자열 변경하기

    find ./ -name "conf.*" | grep -r "문자열" find ./ -name "conf.*" -exec sed -i "s/변경 전/변경 후/g" {} + ### sed 옵션 #-e 옵션: 스크립트를 지정합니다. 여러 개의 스크립트를 지정할 때 사용합니다. #-f 파일: 스크립트 파일을 지정합니다. #-i: 원본 파일을 직접 수정합니다. 백업 파일을 만들지 않고 원본 파일을 수정할 때 사용합니다. #-n: 출력을 자동으로 하지 않습니다. 스크립트에 의해 출력되는 것만 출력합니다. #-r: 정규 표현식을 확장합니다. 이 옵션을 사용하면 특수 문자를 이스케이프하지 않고도 사용할 수 있습니다. #-u: BSD 확장 모드로 실행합니다. BSD sed와 호환성을 제공합니다. #-V: 버전 정보를 ..

    [Spark] Parquet 파일을 읽는 동안 Dataframe의 메타데이터 변경 에러

    이 포스팅에서는 Parquet 파일을 읽는 동안 Dataframe의 메타데이터가 수정 되었을 경우 "REFRESH TABLE tableName"에러가 뜨는 문제를 어떻게 해결할 수 있는지 알아보겠습니다. 기존의 모든 배치에서는 동일 파티션에 대해 .mode("overwrite")를 사용하기 때문에, 프로세스가 실행되는 동안 수정/삭제된 파일을 읽으려고 시도하게 되면 메타데이터가 변경되었다는 "REFRESH TABLE tableName" 에러가 발생합니다. 이로 인해 해당 파티션이 저장 중 상태인 temporary 에서는 테이블을 사용할 수 없게 됩니다. 따라서 아래와 같이 메타데이터를 메모리 위에 올려주거나 다른 dump와 같은 경로에 저장을 하는 방법 등으로 해결할 수 있습니다. 저는 그 중 DataF..

    [SPARK] SPARK에서 대량의 스몰 파일이 생성되는 문제 해결

    서론 데이터를 적재하는 과정에서 하둡 네임노드 부하 방지 목적으로 HDFS 상의 대량으로 생성된 스몰 파일을 확인하여 삭제 요청을 받고 있다. 단순히 파일을 삭제하여 해결할수도 있겠지만, 스몰파일이란 무엇이며 왜 발생하고 어떠한 이유 때문에 문제가 되는지 알아보도록 하겠다. 0. 스몰 파일이란? 스몰 파일은 블록 크기보다 작은 파일을 의미한다. 하둡 클러스터의 블록 크기와 비교하여 판단되기 때문에, 스몰 파일의 크기 기준은 상대적이다. 기본적으로 하둡 클러스터에서는 블록(Block) 크기가 보통 64MB 또는 128MB로 설정되어 있다. 일부 경우에는 1MB 미만의 파일도 스몰 파일로 간주할 수 있으며, 다른 경우에는 10MB 이상의 파일부터 스몰 파일로 간주할 수도 있다. 1. 스몰 파일을 왜 지워야되..

    [Python] 디버깅 모듈 pdb

    pdb는 파이썬 코드를 디버깅할 때 사용하는 모듈이다. 이 모듈을 사용하면 중단점(breakpoint) 설정, 소스 리스팅, 변수 치환, 콜 스택 검사 등의 다양한 기능을 사용할 수 있다. 특히나 머신러닝과 같이 피쳐 사이즈에 민감한 개발의 경우 python debugger가 매우 큰 도움이 될 수 있다. 파이썬 디버거 예제 pdb 모듈은 파이썬 표준 라이브러리의 일부이기 때문에 별도 설치가 필요없다. ​Python 디버깅 모듈을 사용하면 매 순간 변수값을 알아낼 수 있고, 직접 trace를 볼 수도 있다. import pdb x=0 while True: x+=1 print ("Current number:", x) pdb.set_trace() 파이썬 3.7 버전 이후부터는 기존의 pdb.set_trace..