now is better than never

[엔지니어링] 리눅스 (1) 본문

빅데이터

[엔지니어링] 리눅스 (1)

김초송 2023. 4. 11. 19:25

리눅스

  • 오라클 : 정형화된 데이터, 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