now is better than never
스파크 (1) 본문
스파크 장점
- 테이블 생성이 쉬움
- DML 작업 가능
- 속도가 빠름
하둡 : 디스크에서 데이터 처리
스파크 : 메모리에서 처리, 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 |