Кодирование данных в ISO_8859_1 в Bigquery с использованием pyspark - PullRequest
1 голос
/ 06 мая 2020

У меня есть многоязычные символы в моем фреймворке pyspark. После записи данных в bigquery он показывает мне странные символы из-за своей глухой схемы кодирования (utf-8). Как я могу изменить кодировку в Bigquery на ISO_8859_1 с помощью pyspark / datapro c?

enter image description here

Ответы [ 2 ]

0 голосов
/ 06 мая 2020

Была проблема в самом исходном файле, поскольку он проходил через api. Следовательно, можно решить проблему.

0 голосов
/ 06 мая 2020

Первым делом вы должны проверить в источнике или исходной системе Как они отправляют данные и понять, в какой это кодировке. Если все еще отличается, проведите следующее расследование.

AFAIK pyspark читает json с кодировкой utf-8 и загружается в bigquery в соответствии с вашими комментариями. Таким образом, это не ошибка bigquerys, поскольку по умолчанию это utf-8.

вы можете изменить кодировку на ISO-8859-1 и загрузить json, как показано ниже,

spark.read.option('encoding','ISO-8859-1').json("yourjsonpathwith latin-1 ")

и загрузить в bigquery.

Также ...

при записи фрейма данных в bigquery.

  • вы можете тестировать / отлаживать, используя функцию decode с col и charset как в форматах iso-8859-1, так и в формате utf-8, чтобы понять, где он идет не так, используя ...

    pyspark.sql.functions.decode(columnname , charset), а также увидеть, может ли он декодировать в utf-8 или нет ...

  • вы можете записать фрейм данных с помощью pyspark.sql.functions.decode(col, charset)

...