EMR Zeppelin에서 Spark를 실행해서 jdbc를 통해 데이터베이스(Redshift) 데이터를 병렬로 가지고 오는 방법
Spark에서 제공하는 partitionColumn, lowerBound, upperBound, numPartitions 파라미터를 사용해서 JDBC read 작업 시 병렬 처리를 하도록 요청할 수 있음.
샘플 코드
df = spark.read.format("jdbc").option("driver", jdbc_driver_name)\
.option("url", db_url).option("dbtable", table_name)\
.option("user", db_username).option("password",db_password)\
.option('partitionColumn','event_id')\
.option('lowerBound','1').option('upperBound','200')\
.option('numPartitions','8').load()
주의사항
reference
https://spark.apache.org/docs/latest/sql-data-sources-jdbc.html