Преобразование в арабский текст в Python - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть данные в таблице mysql с charset-utf-8.У меня есть один скрипт pyspark, который загружает данные mysql и записывает файл партера в корзину s3.При получении данных из MySQL я получаю данные в формате ниже: Формат:

'الشرقية'

Затем я преобразовал его в кодировку UTF-8, я получил ниже строки Unicode:

'\xc3\x98\xc2\xa7\xc3\x99\xe2\x80\x9e\xc3\x98\xc2\xb4\xc3\x98\xc2\xb1\xc3\x99\xe2\x80\x9a\xc3\x99\xc5\xa0\xc3\x98\xc2\xa9'

После этого ярасшифровал его в кодировке mac_arabic, тогда я получаю текст ниже:

'أ»آ'أôقÄûأ»آ٤أ»آ١أôقÄöأôإ أ»آ)'

Есть ли способ генерировать арабский текст из любой из этих строк.

ниже приведен код

sqlContext = SQLContext(sc)
df = sqlContext.read.format("jdbc").options(
                                       url="jdbc:mysql://localhost/db_name",
                                       driver="com.mysql.jdbc.Driver",
                                       dbtable="table",
                                       user="root",
                                       password="root"
                                      ).load()

df.show()

Для столбцов в таблице ниже установлен конфиг: SET CHARACTER utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL

для базы данных ниже конфига установлено: ENGINE = InnoDB AUTO_INCREMENT = 42627 CHARSET DEFAULT = latin1

* 1018заранее.

1 Ответ

0 голосов
/ 17 декабря 2018

Версия драйвера JDBC на вашей платформе не использует кодировку UTF-8 по умолчанию.Как указано в комментариях выше, попробуйте явно передать кодировку драйверу:

df = sqlContext.read.format("jdbc").options(
    url="jdbc:mysql://localhost/db_name?characterEncoding=utf8",
    driver="com.mysql.jdbc.Driver",
    dbtable="table",
    user="root",
    password="root").load()
...