now is better than never

스파크 (1) 본문

빅데이터

스파크 (1)

김초송 2023. 4. 24. 14:17

스파크 장점

  1. 테이블 생성이 쉬움
  2. DML 작업 가능
  3. 속도가 빠름
    하둡 : 디스크에서 데이터 처리
    스파크 : 메모리에서 처리, NoSQL 

 

1. 처음 스파크 켤 때 하이브는 켜지말고 스파크만 키기

2. reboot -> 하둡 올리고 (start-all.sh) -> 스파크 시작

start-all.sh
#nameNode, secondaryNameNode, dataNode, jps, jobTracker, taskTracker
jsp

#spark 접속
spark-shell

#Hive 문법 사용
val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc)

#테이블 생성
sqlContext.sql("CREATE TABLE IF NOT EXISTS employee (id INT, name STRING, age INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ','  LINES TERMINATED BY '\n'")

#데이터 로드
sqlContext.sql("LOAD DATA LOCAL INPATH 'employee.txt' INTO TABLE employee")

sql("select * from employee").show()

#drop
sql("drop table employee")
  • sql 문 줄바꿈 하고 싶으면 " 3개
#csv 파일로 테이블 생성
sqlContext.sql("""create  table  IF  NOT EXISTS  emp( empno int, ename  string,  
         job  string, mgr  int, hiredate string, sal  int,  comm  int,  deptno  int )  
         row format  delimited  fields  terminated  by  ','  
         lines  terminated  by  '\n' """)
  • 통계 요약(평균, 표준편차, 최소값, 최대값) 출력
#.describe()
sql("select job, sum(sal) totalSal from emp where comm is not null group by job").describe().show()

 

쿼리 결과를 csv 파일로 저장

spark

sql("select job, sum(sal) totalSal from emp group by job").coalesce(1).write.option("header", "true")\
.option("sep", ",").mode("overwrite").csv("/home/oracle/job_sal")

terminal

$ cd job_sal
$ mv part-r-00000-47430fb7-1e45-4c3f-8b8e-0282efb5e6d5.csv  job_sal.csv
  • coalesce(1) : 하나의 파일로 저장
  • write.option("header", "true") : 컬럼명 포함
  • option("sep", ",") : csv 파일
  • csv("디렉토리/폴더") : 파일명(part-r- ~~)이 길어서 폴더에 따로 저장하는 것이 좋음
본 내용은 아이티윌 '빅데이터&머신러닝 전문가 양성 과정' 을 수강하며 작성한 내용입니다.

 

'빅데이터' 카테고리의 다른 글

mongoDB (2)  (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