[Spark] RDB 데이터 읽기/쓰기

Woong·2022년 5월 10일
0

Apache Spark

목록 보기
12/22

JDBC 기본 설정

val driver = "com.mysql.jdbc.Driver"
val url = "jdbc:mysql://localhost:3306/world"
val tablename = "country"

val connectionProperties = new Properties()
connectionProperties.put("user", "root")
connectionProperties.put("password", "root")

write

  • 별다른 옵션 없이 write
    • index 나 type 등 지정 불가 (ex. 문자열은 text 타입 자동 지정 등)
jdbcDf
 .write
 .jdbc("jdbc:mysql://localhost:3306/world", s"${tablename}", connectionProperties)

테이블 스키마 지정

  • write 시 createTableColumnTypes 옵션으로 스키마 지정
  • read 시 customSchema 옵션으로 지정
 jdbcDf
 .write
 .option("createTableColumnTypes", "name VARCHAR(500), col1 VARCHAR(1024), col3 int")
 .jdbc(url, s"${tablename}", connectionProperties)

append, overwrite, ignore mode

var writeMode =  SaveMode.Overwrite // SaveMode.Append, SaveMode.Ignore 등
 jdbcDf
 .write
 .mode(writeMode)
 .option("createTableColumnTypes", "name VARCHAR(500), col1 VARCHAR(1024), col3 int")
 .jdbc(url, s"${tablename}", connectionProperties)

reference

0개의 댓글