Spark 에서 MariaDB Connector 를 이용해 MariaDB 에 save할 때, syntax error 발생하는 이슈
해결방안 1. Mysql Connector 사용
- ※ Mysql Connector License 주의
Class.forName("com.mysql.jdbc.Driver")
val connectionProperties = new Properties()
connectionProperties.put("user", "root")
connectionProperties.put("password", "testpass")
connectionProperties.put("driver", "com.mysql.jdbc.Driver")
...
testDF.write.mode("append").jdbc("jdbc:mysql://localhost:3306", "test_table", connectionProperties)
해결방안 2. MariaDB sql_mode 조정
SET global sql_mode = ANSI_QUOTES;
- 영구 적용
** my.cnf 에 적용해야 영구적으로 적용됨
# my.cnf
[mysqld]
sql_mode="ANSI_QUOTES"
Class.forName("org.mariadb.jdbc.Driver")
val connectionProperties = new Properties()
connectionProperties.put("user", "root")
connectionProperties.put("password", "testpass")
connectionProperties.put("driver", "org.mariadb.jdbc.Driver")
...
testDF.write.mode("append").jdbc("jdbc:mariadb://localhost:3306", "test_table", connectionProperties)
reference