now is better than never
[엔지니어링] 리눅스 (1) 본문
리눅스
- 오라클 : 정형화된 데이터, SQL
- 하둡 / 스파크 : 비정형화(사진, 동영상), 반정형화(html 소스) 된 데이터, 클라우드
- 코랩은 우분투 기반 -> 리눅스 명령어 사용 가능
명령줄 맨 앞에 ! 붙여서 리눅스 명령어 실행 - 리눅스로 데이터를 가져오는 이유 : 데이터 파이프 라인 구현
파이프 라인 생성 = 데이터를 뽑아서 저장하는 자동화 플로우를 구현 - 데이터 엔지니어 -> 리눅스 쉘 프로그래밍을 이용해서 자동화 구현
명령어
- cd [경로] : 경로로 이동, 뒤에 아무것도 없으면 root로 이동
cd .. : 상위 디렉토리로 이동 (상대 경로) - pwd : 현재 디렉토리의 절대 경로 출력
- mkdir [directory] : 현재 경로에 하위 디렉토리 생성
- rm [name] : [name] 파일이나 디렉토리 삭제 (휴지통에서 복구 불가능)
- rmdir [directory] : 디렉토리 삭제
- ls : =list, 경로에 존재하는 파일과 폴더를 출력하는 명령어
- ls -ld [name] : root 에 [name] 디렉토리가 있는지 확인
ls -l *.csv : 현재 디렉토리에 csv 파일이 확인 -> 있으면 파일들의 정보 출력 - touch [name.ext] : 용량이 0이고 파일명이 name, 확장자가 ext 인 파일 생성
alias
- alias [a]=[a2] : [a2] 명령어를 [a] 명령어로 실행할 수 있도록 alias 설정
- unalias [a] : alias 삭제
- alias : 등록된 alias 확인
cat
- 파일의 내용을 화면에 출력하는 명령어
- | (pipe) : 이전 명령어의 결과를 이후 명령어의 입력값으로 보냄
- grep '검색할 단어' [검색할 텍스트 파일]
- grep -i : 대소문자를 구분하지 않고 검색
- more 파일 : cat 대신 more을 쓰면 일부 파일만 출력
- space : 다음 텍스트
- b : 이전 텍스트
- f : 다음 페이지(단위)
- q : 종료
head / tail / wc
- head / trail -n [file.ext] : 파일의 첫 / 마지막 n 줄을 화면에 출력
- wc -l [file.ext] : 파일의 라인 수
- wc [file.ext] : 파일의 라인, 단어, 철자 수
redirection
- 화면에 출력되는 결과를 파일로 저장하는 명령어
- 원천 데이터를 나누는 작업(성별, 나이대별, 직업별 ...)을 할 때 많이 사용하는 명령어
- >> : 기존에 같은 파일의 이름이 없으면 생성, 있으면 기존 파일 뒤에 추가
- > : 파일 생성. 같은 파일 이름이 있으면 덮어쓰기
- cat emp300.csv >> emp.csv : emp300.csv 의 결과를 emp.csv 로 저장
- ls -l emp.csv
- cat emp300.csv | grep -i 'ANALYST' >> analyst.csv
: analyst 데이터만 뽑아서 csv 파일로 저장
grep
- 파일 안에 포함된 특정 단어나 구문을 검색
- raw data -> 데이터 전처리 -> 데이터 분석 -> 인사이트
데이터 엔지니어 데이터 분석가 - grep '단어' [파일명]
awk
- 컬럼만 추출하는 명령어
- awk -F '구분자' '{print $c1, $c2}'
- -F '구분자' : csv 는 콤마가 구분자
- $c1, $c2 : c1, c2 는 컬럼 번호(숫자)로 입력해야 함
- 특정 컬럼에서 필터링 할 때 사용
특정 조건을 특정 컬럼에서 검색하고자 할 때 사용
- 부서번호가 10번인 사원들
- awk -F ',' '$8 == 10' emp300.csv
: 8번째 컬럼의 값이 10인 데이터 - awk -F ',' '$6 >= 3000 { print $2, $6 }' emp300.csv >> result3000.csv
: 6번째 컬럼(월급) 값이 3000 이상인 데이터의 2번째, 6번째 컬럼만 'result300.csv' 파일로 저장
- 현업에서는 위의 작업을 매일 반복하기 때문에 리눅스 쉘 스크립트를 이용해서 자동화함
본 내용은 아이티윌 '빅데이터&머신러닝 전문가 양성 과정' 을 수강하며 작성한 내용입니다.
'빅데이터' 카테고리의 다른 글
스파크 (1) (0) | 2023.04.24 |
---|---|
mongoDB (1) (0) | 2023.04.20 |
[엔지니어링] 리눅스 (4) (0) | 2023.04.17 |
[엔지니어링] 리눅스 (3) (0) | 2023.04.13 |
[엔지니어링] 리눅스 (2) (0) | 2023.04.12 |