2021. 7. 29. 14:33ㆍ카테고리 없음
금일은 Spark에서 PostgreSQL 을 연결하는 방법에 대해 알아보겠다.
Spark랑 연결하는 방법에는 여러가지 있는데,
그중 하나가 jdbc 를 활용하는 것이다.
PostgreSQL은 jdbc를 활용해야, Spark에서 데이터를 읽어 올 수 있다.
그럼 먼저 필요한 Postgre jdbc를 다운받자.
[신버전] - 최근 페이지를 보니 깨져서 다시 올린다. ( 구버전은 읽지 말길 )
https://jdbc.postgresql.org/download/#older-versions
해당 링크에서 jdbc 최신 드라이버를 다운받아 준다.
본 테스트는 postgresql-42.6.0.jar 기준으로 작업을 수행한다.
( 자바 버전에 맞춰 다운 받길 바란다 )
그리고 다운 받은 경로를 잘 기억해 두자!!
이제 spark를 시작한다.
[구버전] - 링크가 깨짐https://jdbc.postgresql.org/download.html
해당 링크에서 jdbc 최신 드라이버를 다운받아 준다.
본 테스트는 postgresql-42.2.23.jar 기준으로 작업을 수행한다.
그리고 다운 받은 경로를 잘 기억해 두자!!
이제 spark를 시작한다.
1. postgre의 접속 정보와 import pyspark를 한다.
import pyspark ip = "127.0.0.1" ( IP 주소 ) port = 5432 ( 포트 ) user = "아이디" passwd = "비밀번호" db = "데이터베이스" |
2. SparkSession를 선언한다.
spark = pyspark.sql.SparkSession \ .builder \ .config("spark.driver.extraClassPath", r"C:\Users\Desktop\lib\postgresql-42.6.0.jar") \ .appName("App") \ .getOrCreate() |
3. PostgreSQL에서 필요한 sql를 작성한다.
sql = """ select * from schema.sample_table ( 스키마 이름 . 테이블 이름 ) limit 10 """ |
4. PostgreSQL를 읽어온다.
postgreTable = spark.read.format("jdbc")\ .option("url","jdbc:postgresql://{0}:{1}/{2}".format( ip, port, db ) )\ .option("driver", "org.postgresql.Driver")\ .option("query", sql)\ .option("user", user)\ .option("password", passwd)\ .load() |
5. 데이터를 확인한다.
postgreTable.show() |
6. Spark SQL를 작성한다.
postgreTable.createOrReplaceTempView( "postgreTable" ) spark.sql( """ select * from postgreTable limit 5 """).show() |
데이터가 잘 나오는 걸 확인할 수 있다.
막상 연결만 되면 쉽다.
근데 왜 난 늘 한방에 안되냐....
한방에 안되서 이렇게 정리하는 거 아닌가....
좋게 생각하자 ㅎㅎ