연동할 때 필요한 준비사항
- JDBC 드라이버 (아래 사이트에서 다운로드)
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
다운로드 받은 jar 파일 경로는 아래 코드에 필요하니 저장 받은 경로 위치 기억해두자.
PostgreSQL에서 테이블 가져오기
PostgreSQL에서 제공하는 dvdrental의 actor 테이블을 가져오자.
1. PostgreSQL 접속 시 필요 정보 입력
아래의 포트번호, ID, 비밀번호, 데이터베이스는 PostgreSQL에 맞춰 입력
# localhost
ip = "127.0.0.1"
# port
port = "포트번호"
# username
user = "ID"
# password
passwd = "비밀번호"
# database
db = "데이터베이스"
2. SparkSession 생성
# 위에서 다운 받은 jdbc driver 경로 입력
# SparkSession
spark = pyspark.sql.SparkSession \
.builder \
.config("spark.driver.extraClassPath", r"C:\\Program Files\\PostgreSQL\\14\\bin\\postgresql-42.3.3.jar") \
.getOrCreate()
3. SQL Query 작성
dvdrental에 있는 actor table만 가져오기
# dvdrental에 있는 actor 테이블만 가져오자
# SQL query 작성
sql = """
select * from actor
"""
4. PySpark에 PostgreSQL 연동 후 테이블 가져오기
dvdrental_actor = 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()
dvdrental_actor.show()
5. 가져온 테이블 SQL 쿼리 작성하여 실행하기
dvdrental_actor.createOrReplaceTempView( "dvdrental_actor" )
# SQL 쿼리 작성
spark.sql( """
select *
from dvdrental_actor
limit 5
""").show()
PostgreSQL에 데이터 테이블 업로드하기
이번에 위와 반대로 PySpark에서 생성한 데이터프레임을 PostgreSQL에 업로드 해보자.
업로드하는 데이터는 저번에 전처리한 숙박업 데이터를 사용하자.
https://han-depository.tistory.com/46?category=977547
[PySpark] PySpark로 데이터 전처리
* 목표 PySpark의 기본 연산을 사용하여 데이터 전처리하자. * 데이터 출처 분석 과정에 쓰일 데이터는 LocalDATA에서 제공하는 숙박업종 정보 데이터로 아래 사이트에서 데이터를 다운 받을 수 있습
han-depository.tistory.com
- Parquet 불러오기
lodge = spark.read.parquet("C:\\Users\\USER\\Desktop\\Dataset\\lodge_industry\\lodge.parquet")
lodge.show()
- 테이블 업로드하기
lodge라는 데이터테이블로 업로드 하자
# JDBC 소스로 데이터 저장하기
lodge.write.format("jdbc") \
.option("url","jdbc:postgresql://{0}:{1}/{2}".format( ip, port, db ) )\
.option("driver", "org.postgresql.Driver") \
.option("dbtable", "lodge") \
.option("user", user) \
.option("password", passwd) \
.save()
제대로 pgAdmin에 연동된 것을 확인
Reference
Spark PostgreSQL 연동 방법 ( jdbc, spark sql )
금일은 Spark에서 PostgreSQL 을 연결하는 방법에 대해 알아보겠다. Spark랑 연결하는 방법에는 여러가지 있는데, 그중 하나가 jdbc 를 활용하는 것이다. PostgreSQL은 jdbc를 활용해야, Spark에서 데이터를
urame.tistory.com
https://spark-korea.github.io/docs/sql-data-sources-jdbc.html
JDBC를 통해 다른 데이터베이스 사용하기 - Spark 2.4.3 Documentation
You are using an outdated browser. Upgrade your browser today or install Google Chrome Frame to better experience this site. 개요 프로그래밍 가이드 API 문서 v2.4.3 -->
spark-korea.github.io
'빅데이터' 카테고리의 다른 글
[PySpark] Spark 핵심 DataSource (0) | 2022.03.09 |
---|---|
[PySpark] Spark 구성 컴포넌트 (0) | 2022.03.08 |
[PySpark] Spark 란? (0) | 2022.03.07 |
Yolov5를 이용한 TFT 챔피언 인식하기 (0) | 2022.02.18 |
API를 활용한 챗봇 만들기 (0) | 2022.02.07 |
댓글