spark

spark 와 db연동 하기

코드모헨 2025. 1. 22. 14:39
data base에서 바로 spark로 데이터를 불러오자


df2 = spark.read.format("jdbc")\ # jdbc는 maria/ mysql 계열
    .option("url", db_url)\
    .option("user", "db접근 아이디")\
    .option("password", "db패스워드")\
    .option("dbtable", "mysql에서는 db이름 psql일때는 스키마의 이름을 쓴다")\
    .load()

 

위의 방식으로 읽거나 혹은 .format 메소드 말고 바로 jdbc 명령어를 사용해서도 읽어 올수 있다.

df = spark.read.jdbc(url=db_url, table="테이블 이름", properties=db_properties)

 

단 이때 mariadb의 드라이버는 spark가 인식을 못한다.

그러므로 mysql의 드라이버로 접속해준다 
두 데이터베이스의 엔진은 같으므로 호환이 된다.

 

db에서 spark로 데이터를 읽어오기 위해서는 driver가 필수인데 이 driver는 각 db공식 홈페이지에서 다운 받아야 한다.

spark에 driver를 인식시키기 위해

.option("driver", driver_path) #mysql / maria db의 경우 .jar로 끝나는 파일 경로

 

위 의 방식으로 런타임 환경에서 넣어주거나 

$SPARK_HOME/conf

 

위 경로에 있는 spark-defaults.conf 파일에 

spark.driver.extraClassPath  driver경로

 

위와 같이 입력해준다

sparksession이 실행되기 전에 위의 파일을 읽어온다.

즉 option을 런타임에서 굳이 지정해주지 않아도 된다.

물론 다른 db를 사용한다면 그 때 런타임 환경에서 .option을 이용해 덮어쓸 수 있다.

'spark' 카테고리의 다른 글

spark memory 관리  (0) 2024.02.27
Repartiotion 방법  (0) 2024.02.16
Spark partition 이해하기  (1) 2024.02.16
자주사용되는 spark config  (0) 2024.02.13
Spark 설치하기 in Linux - ubuntu  (0) 2023.12.22