Spark와 MariaDB Connection Error

Spark와 MariaDB Connection Error

문제

PySpark로 Mariadb의 데이터를 읽어와서 show()로 출력하는 코드를 작성 중이었다.

계속 show()의 결과가 아래와 같이 value가 컬럼명으로 채워져서 나온다.

+------------+----+
|process_code|name|
+------------+----+
|process_code|name|
|process_code|name|
|process_code|name|
|process_code|name|

...


원인 및 해결책

Spark는 jdbc:mariadb 를 인식하지 못한다고 한다. 그러므로 jdbc:mysql://{server}:{port}/{database}?permitMysqlScheme 과 같은 JDBC URL을 사용해야 한다. connection 코드는 아래와 같다.

# get mariadb data
mariadb_url = "jdbc:mysql://localhost:3306/test?permitMysqlScheme"
mariadb_table = "test_table"
mariadb_user = "root"
mariadb_password = "mypassword"
mariadb_driver = "org.mariadb.jdbc.Driver"

tag_manage = spark.read.format("jdbc") \
    .option("url", mariadb_url) \
    .option("driver", mariadb_driver) \
    .option("user", mariadb_user) \
    .option("password", mariadb_password) \
    .option("query", 'select col1, col2 from test_table') \
    .load()

Leave a comment