GCP Dataproc - кириллические символы не отображаются правильно в Python

У меня странная проблема с Python.

Если я запустил этот скрипт с кириллическими словами на моей локальной машине python, он будет работать правильно, как и должен. Однако, если я запустил его на Dataproc как задание Spark, он напечатает совсем другое.

str1 = 'Кровати'
print(str1)

вывод на моем локальном питоне Кровати на Dataproc это ÐÑоваÑи

В этом суть проблемы. Настоящая причина, по которой мне это нужно, заключается в том, что у меня много слов на русском в данных, а затем сравнение между загруженными данными из BQ и словами в конфигурации не работает, даже если строки должны быть одинаковыми.

Спасибо за любую помощь


person Ondrej    schedule 06.08.2019    source источник
comment
Вы тестировали локально на pyspark?   -  person Luiz Fernando Lobo    schedule 06.08.2019


Ответы (1)


Я думаю, это из-за кодировки вашего исходного кода, на вашем локальном компьютере кодировка по умолчанию установлена ​​правильно, но она отличается от кодировки по умолчанию Dataproc PySpark. Вы можете подписаться на https://www.python.org/dev/peps/pep-0263/, чтобы явно указать кодировку исходного кода.

person Dagang    schedule 06.08.2019
comment
спасибо, но, к сожалению, это не сработало: / Я добавил #! / usr / bin / python # - - coding: utf-8 - - но результаты такие же при сравнении моего локального вывода против вывода dataproc - person Ondrej; 07.08.2019
comment
Что, если вы не распечатаете строку, которая будет использовать кодировку по умолчанию Dataproc, вы сохраните ее в файл? - person Dagang; 07.08.2019