예제 : 스파크에서 emp 테이블 생성하고 쿼리하기
스파크 접속 (spark-shell)
(base) [oracle@centos ~]$ spark-shell
스파크 접속
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/___/ .__/\_,_/_/ /_/\_\ version 2.0.2
/_/
Using Scala version 2.11.8 (Java HotSpot(TM) Client VM, Java 1.7.0_60)
Type in expressions to have them evaluated.
Type :help for more information.
scala>
접속이 안될 때 해결방법
spark 빠져나오기
exit
oracle에서 jps 확인
jps
sparksubmit (번호가 20046이면) 죽이기
kill -9 20046
이것도 안되면 reboot
1. hive sql을 스파크에서 사용하겠다고 지정(항상 해야한다!)
scala> val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc)
2. emp 테이블 drop 하는 명령어(우선 실습을 위해 있는 테이블 drop 하기)
scala> sql("drop table emp")
3. emp 테이블 생성
scala> 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' """)
더블 쿼테이션 마크 3개(""" """) 를 쓰면 여러줄로 작성해도 sql이 수행되므로 훨씬 간편하다
4. 생성한 emp 테이블에 oracle 계정에 있는 파일 로드 (데이터 로드)
1) 우선 oracle 계정으로 가서 파일 있는지 확인
(base) [oracle@centos ~]$ ls -l emp.csv
-rw-rw-r--. 1 oracle oracle 613 9월 16 16:00 emp.csv
2) 스칼라에서 oracle 에 있는 파일 로드
emp 테이블에 /home/oracle/emp.csv 데이터를 로드 하겠다
scala> sqlContext.sql("LOAD DATA LOCAL INPATH '/home/oracle/emp.csv' INTO TABLE emp")
# emp 테이블에 /home/oracle/emp.csv 데이터를 로드 하겠다
#출력
res2: org.apache.spark.sql.DataFrame = []
#데이터 프레임 생성
5. emp 테이블 조회해보기
scala> sql("select * from emp").show()
+-----+------+---------+----+----------+----+----+------+
|empno| ename| job| mgr| hiredate| sal|comm|deptno|
+-----+------+---------+----+----------+----+----+------+
| 7839| KING|PRESIDENT|null|1981-11-17|5000|null| 10|
| 7698| BLAKE| MANAGER|7839|1981-05-01|2850|null| 30|
| 7782| CLARK| MANAGER|7839|1981-05-09|2450|null| 10|
| 7566| JONES| MANAGER|7839|1981-04-01|2975|null| 20|
| 7654|MARTIN| jjj|7698|1981-09-10|1250|1400| 30|
| 7499| ALLEN| jjj|7698|1981-02-11|1600| 300| 30|
| 7844|TURNER| jjj|7698|1981-08-21|1500| 0| 30|
| 7900| JAMES| CLERK|7698|1981-12-11| 950|null| 30|
| 7521| WARD| jjj|7698|1981-02-23|1250| 500| 30|
| 7902| FORD| ANALYST|7566|1981-12-11|3000|null| 20|
| 7369| SMITH| CLERK|7902|1980-12-09| 800|null| 20|
| 7788| SCOTT| ANALYST|7566|1982-12-22|3000|null| 20|
| 7876| ADAMS| CLERK|7788|1983-01-15|1100|null| 20|
| 7934|MILLER| CLERK|7782|1982-01-11|1300|null| 10|
+-----+------+---------+----+----------+----+----+------+
이제 마음껏 sql 쿼리로 데이터를 출력하면 된다!
'스파크(SPARK)' 카테고리의 다른 글
스파크로 WHERE 절 서브쿼리 문제 풀기 (1) | 2022.09.21 |
---|---|
스파크 SQL 기본 코드 예제 (group by, rank) (0) | 2022.09.20 |
스파크에서 작업이 안되고 계속 에러가 날 때 조치 방법 (0) | 2022.09.20 |
스파크(SPARK) 접속하여 HIVE SQL 사용하기(시작 단계) (0) | 2022.09.20 |
스파크 설치하기 (1) | 2022.09.20 |