Spark MySQL ошибка записи Неверное строковое значение: '\ xF0 \ x9F \ x91 \ x8D' для столбца в строке 1 - PullRequest
0 голосов
/ 05 мая 2020

У меня есть таблица MySQL со столбцами, созданными с такими столбцами, как-> POST longtext CHARACTER SET utf8mb4, и так далее

И я пишу в mysql таблицу из Spark, используя scala

DF.write.mode("append").jdbc(jdbcUrl,"feeds",connectionProperties)

Мой URL-адрес jdf c:

val jdbcUrl = s"jdbc:mysql://${jdbcHostname},useUnicode=true&charset=utf8mb4"

Я также изменил свойства ниже, обратившись к https://www.percona.com/blog/2018/04/10/migrating-database-charsets-to-utf8mb4/

character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

И все равно не повезло. Я получаю ту же ошибку при записи в таблицу mysql,

java. sql .BatchUpdateException: (conn = 35650) Неверное строковое значение: '\ xF0 \ x9F \ x91 \ x8D 'для столбца' любой 'в строке 1

(из комментария)

CREATE TABLE feeds_v2 (
    EMAIL varchar(300) COLLATE utf8mb4_bin DEFAULT NULL, 
    POST_MESSAGE longtext COLLATE utf8mb4_bin, 
    POST longtext COLLATE utf8mb4_bin, 
    message_tags_name varchar(300) COLLATE utf8mb4_bin DEFAULT NULL, 
    COMMENT_MESSAGE longtext COLLATE utf8mb4_bin, 
    COMMENT_FROM_ID varchar(50) COLLATE utf8mb4_bin DEFAULT NULL, 
    COMMENT_NAME varchar(300) COLLATE utf8mb4_bin DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin
...