Поддержка SparkR DataFrame для символов UTF-8 (поддержка нескольких языков)

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

Однако, когда я пытаюсь показать DF (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() по-прежнему не отображала символы на родном языке


person babalu    schedule 21.11.2015    source источник
comment
Какие у вас LOCALE и LANG?   -  person Reactormonk    schedule 21.11.2015


Ответы (1)


Я понял.

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. Для Баша, 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()' -- для

Кроме того, вы можете ввести выражение ошибки, чтобы узнать, на каком языке отображается сообщение об ошибке.

person babalu    schedule 21.11.2015