Spark PostgreSQL 연동 방법 ( jdbc, spark sql )

2021. 7. 29. 14:33카테고리 없음

반응형

 

금일은 Spark에서 PostgreSQL 을 연결하는 방법에 대해 알아보겠다. 

 

Spark랑 연결하는 방법에는 여러가지 있는데, 

 

그중 하나가 jdbc 를 활용하는 것이다. 

 

PostgreSQL은 jdbc를 활용해야, Spark에서 데이터를 읽어 올 수 있다.

 

그럼 먼저 필요한 Postgre jdbc를 다운받자.

 

 

[신버전] - 최근 페이지를 보니 깨져서 다시 올린다. ( 구버전은 읽지 말길 ) 

https://jdbc.postgresql.org/download/#older-versions

반응형
 

Download | pgJDBC

Download Binary JAR file downloads of the JDBC driver are available here and the current version with Maven Repository. Because Java is platform neutral, it is a simple process of just downloading the appropriate JAR file and dropping it into your classpat

jdbc.postgresql.org

 

 

해당 링크에서 jdbc 최신 드라이버를 다운받아 준다. 

 

본 테스트는 postgresql-42.6.0.jar 기준으로 작업을 수행한다.

( 자바 버전에 맞춰 다운 받길 바란다 ) 

 

그리고 다운 받은 경로를 잘 기억해 두자!! 

 

이제 spark를 시작한다. 

 


[구버전] - 링크가 깨짐
https://jdbc.postgresql.org/download.html

 

PostgreSQL JDBC Download

Download About Binary JAR file downloads of the JDBC driver are available here and the current version with Maven Repository. Because Java is platform neutral, it is a simple process of just downloading the appropriate JAR file and dropping it into your cl

jdbc.postgresql.org

해당 링크에서 jdbc 최신 드라이버를 다운받아 준다.

 

본 테스트는 postgresql-42.2.23.jar 기준으로 작업을 수행한다. 

 

그리고 다운 받은 경로를 잘 기억해 두자!! 

 

이제 spark를 시작한다. 

 

 

728x90

 

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

 

 

데이터가 잘 나오는 걸 확인할 수 있다.

 

막상 연결만 되면 쉽다.

 

근데 왜 난 늘 한방에 안되냐....

 

한방에 안되서 이렇게 정리하는 거 아닌가....

 

좋게 생각하자 ㅎㅎ

 

 

반응형