[spark] Exception in thread "main" java.sql.SQLException: No suitable driver 오류 해결 방법

2019. 11. 13. 14:11·빅데이터/spark

스파크 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 SQL Guide
반응형
저작자표시 비영리 동일조건 (새창열림)

'빅데이터 > spark' 카테고리의 다른 글

[spark] org.apache.spark.sql.AnalysisException: java.lang.RuntimeException: org.apache.tez.dag.api.TezUncheckedException: Invalid configuration of tez jars, tez.lib.uris is not defined in the configuration; 오류 해결 방법  (0) 2019.11.20
[spark] JDBC드라이버를 이용하여 spark sql로 데이터 가져오는 방법  (0) 2019.11.13
[spark] Unable to instantiate SparkSession with Hive support because Hive classes are not found. 오류 해결 방법  (0) 2019.11.08
[spark] AWS EMR에서 Caused by: java.lang.ClassNotFoundException: org.apache.kafka.common.serialization.ByteArrayDeserializer 오류 발생시 해결 방법  (0) 2019.10.14
[spark] AWS-EMR에서 스파크와 카프카 연동에서 발생한 Caused by: java.lang.ClassNotFoundException: kafka.DefaultSource 오류 해결 방법  (0) 2019.10.14
'빅데이터/spark' 카테고리의 다른 글
  • [spark] org.apache.spark.sql.AnalysisException: java.lang.RuntimeException: org.apache.tez.dag.api.TezUncheckedException: Invalid configuration of tez jars, tez.lib.uris is not defined in the configuration; 오류 해결 방법
  • [spark] JDBC드라이버를 이용하여 spark sql로 데이터 가져오는 방법
  • [spark] Unable to instantiate SparkSession with Hive support because Hive classes are not found. 오류 해결 방법
  • [spark] AWS EMR에서 Caused by: java.lang.ClassNotFoundException: org.apache.kafka.common.serialization.ByteArrayDeserializer 오류 발생시 해결 방법
hs_seo
hs_seo
Hello World!
    반응형
  • hs_seo
    개발자로 살아남기
    hs_seo
  • 전체
    오늘
    어제
    • 전체 (1140)
      • 개발자 (21)
        • 개발에 유의할 점 (0)
        • 면접 (5)
      • IT 소식 (5)
        • 업계 (1)
      • java (51)
        • 디자인패턴 (3)
        • apache-common (1)
      • 개념 (47)
        • 자료구조 (4)
        • 함수형사고 (8)
        • 디자인패턴 (1)
      • 데이터분석 (1)
      • python (67)
        • 코드조각 (12)
        • 라이브러리 (2)
      • 빅데이터 (418)
        • zookeeper (5)
        • hadoop (78)
        • hdfs (12)
        • hive (127)
        • hbase (16)
        • spark (40)
        • scala (4)
        • trino (3)
        • oozie (41)
        • Hue (9)
        • R (5)
        • sqoop (6)
        • flume (3)
        • elasticsearch (2)
        • airflow (16)
        • kafka (3)
        • kubernetes (10)
        • openstack (3)
        • flink (2)
        • redis (2)
      • 빅데이터 강좌 (2)
      • 알고리즘 (131)
        • 알고리즘 (1)
        • 백준 (61)
        • 정올 (41)
        • 더블릿 (5)
        • 프로그래머스 (1)
      • 프로그래밍 언어 (30)
        • go (4)
        • js (9)
        • .Net (6)
        • Jsp (1)
        • ansible (3)
        • terraform (6)
      • Tools (56)
        • docker (2)
        • macbook (6)
        • maven (3)
        • sublime (1)
      • 프레임워크 (25)
        • [JS] angularjs (2)
        • [JS] node.js (19)
        • [Java] spring (2)
        • Android (2)
      • 데이타베이스 (43)
        • SQLD (5)
        • Oracle (1)
        • MySQL (8)
        • ADsP (2)
      • 리눅스 (25)
        • Bash (61)
      • GCP (5)
      • AWS (34)
        • EC2 (2)
        • EMR (14)
      • 정보보안기사 (4)
        • 네트워크 (1)
      • 개인 (80)
        • 업무실수 (0)
        • 책 (9)
        • 교육 (3)
        • 여행 (17)
        • 영화 (12)
        • 음악 (2)
        • 피규어 (4)
        • 게임 (3)
        • 생각 (7)
        • 기타 (10)
        • 좋은글 (5)
        • 좋은 사이트 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

    • 빅데이터-하둡,하이브로 시작하기
    • 빅데이터-스칼라, 스파크로 시작하기
    • Kaggle에서 파이썬으로 데이터 분석 시작하기
    • 쉘스크립트 개발 시작하기
    • 개발자가 데이터 분석 준전문가 되기
    • 데브쿠마
  • 공지사항

  • 인기 글

  • 태그

    hbase
    하이브
    bash
    HIVE
    java
    하둡
    airflow
    SPARK
    k8s
    백준
    AWS
    오류
    error
    ubuntu
    파이썬
    build
    emr
    Tez
    yarn
    알고리즘
    Linux
    S3
    mysql
    Hadoop
    nodejs
    Python
    정올
    oozie
    다이나믹
    HDFS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
hs_seo
[spark] Exception in thread "main" java.sql.SQLException: No suitable driver 오류 해결 방법
상단으로

티스토리툴바