2015-11-21 2 views
2

Я проверил с помощью Scala, что в кадре данных содержатся символы не-ascii UTF-8 с использованием df.show(). Spark-SQL также показывает правильную кодировку.Поддержка SparkR DataFrame для символов UTF-8 (поддержка нескольких языков)

Однако, когда я пытаюсь showDF (df) использовать SparkR, символы UTF-8 отображаются неправильно. Как мы получаем showDF (df), чтобы отображать символы UTF-8?

Первоначально LOCALE="" & LANG="en_US.UTF-8" ...

1) Установите его в LANG="xx_XX.UTF-8" где X является соответствующим идентификатором языка

2) Sys.setlocale("LC_ALL",locale="xx_XX.UTF-8") но showDF() до сих пор не показывают символы на родном языке

+0

Что такое 'LOCALE' и' LANG'? – Reactormonk

ответ

2

Я понял.

1) Запустить locale -a, чтобы выяснить, какие локали генерируются в системе C C.UTF-8 POSIX en_US.utf8

Указывает кодировку ASCII символов и английский UTF-8 доступны.

2) Создайте желаемый язык для своего языка. Для того, чтобы выяснить, что языковой стандарт для вашей операционной системы, вы должны искать в списке i18n поддерживаемых языков/кодирования (Для Ubuntu он находится в /usr/share/i18n/SUPPORTED)

После того, как вы нашли кодировку, запустите sudo locale-gen ru_RU.UTF-8

3) Затем вы можете установить переменную среды LANG. Для bash, export LANG="ru_RU"

4) Запустите R с вашего терминала и вы увидите приглашение на вашем целевом языке.

R version 3.1.1 (2014-07-10) -- "Sock it to Me" 
Copyright (C) 2014 The R Foundation for Statistical Computing 
Platform: x86_64-pc-linux-gnu (64-bit) 

R -- это свободное ПО, и оно поставляется безо всяких гарантий. 
Вы вольны распространять его при соблюдении некоторых условий. 
Введите 'license()' для получения более подробной информации. 

R -- это проект, в котором сотрудничает множество разработчиков. 
Введите 'contributors()' для получения дополнительной информации и 
'citation()' для ознакомления с правилами упоминания R и его пакетов 
в публикациях. 

Введите 'demo()' для запуска демонстрационных программ, 'help()' -- для 

В качестве альтернативы, вы можете ввести выражение ошибки, чтобы узнать, на каком языке запрашивается ошибка.