티스토리 뷰
빅데이터/spark
[spark] Exception in thread "main" java.sql.SQLException: No suitable driver 오류 해결 방법
hs_seo 2019. 11. 13. 14:11스파크 SQL에서는 JDBC 드라이버를 이용해서 데이터베이스에 접근할 때 다음과 같은 오류가 발생하는 경우가 있습니다.
에러 로그
19/11/12 03:07:36 INFO StateStoreCoordinatorRef: Registered StateStoreCoordinator endpoint
Exception in thread "main" java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getDriver(DriverManager.java:315)
at org.apache.spark.sql.execution.datasources.jdbc.JDBCOptions$$anonfun$6.apply(JDBCOptions.scala:105)
at org.apache.spark.sql.execution.datasources.jdbc.JDBCOptions$$anonfun$6.apply(JDBCOptions.scala:105)
at scala.Option.getOrElse(Option.scala:121)
at org.apache.spark.sql.execution.datasources.jdbc.JDBCOptions.<init>(JDBCOptions.scala:104)
at org.apache.spark.sql.execution.datasources.jdbc.JDBCOptions.<init>(JDBCOptions.scala:35)
at org.apache.spark.sql.execution.datasources.jdbc.JdbcRelationProvider.createRelation(JdbcRelationProvider.scala:32)
at org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:318)
at org.apache.spark.sql.DataFrameReader.loadV1Source(DataFrameReader.scala:223)
원인
- JDBC 라이브러리가 정의되지 않았을 때
- JDBC URL이 제대로 전달되지 않았을 때
해결방법
JDBC URL이 제대로 전달되지 않았을 때
JDBC URL의 드라이버를 결정하는 스키마 정보가 제대로 전달되지 않았을 때 해당 오류가 발생합니다. jdbc:postgressql
, jdbc:mysql과
같이 정확한 스키마 정보가 전달되었는지 다시 확인합니다.
val jdbcDF = spark.read
.format("jdbc")
.option("url", "jdbc:postgresql:dbserver")
.option("dbtable", "schema.tablename")
.option("user", "username")
.option("password", "password")
.load()
JDBC 라이브러리 정의 방법
라이브러리가 제대로 전달되지 않는 경우에 발생할 수도 있습니다. 이때는 driver-class-path
와 jars
에 드라이버 jar 파일을 전달하면 됩니다.
$ spark-submit --master yarn \
--driver-class-path mysql-connector-java-5.1.41.jar \
--jars mysql-connector-java-5.1.41.jar
참고
반응형
'빅데이터 > spark' 카테고리의 다른 글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- HIVE
- oozie
- SQL
- Hadoop
- 오류
- Python
- error
- build
- java
- bash
- S3
- 하둡
- Tez
- mysql
- 다이나믹
- 정올
- 파이썬
- nodejs
- 하이브
- HDFS
- yarn
- ubuntu
- 백준
- SPARK
- hbase
- emr
- airflow
- AWS
- 알고리즘
- Linux
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함