При загрузке в Big Query сбой эмодзи

В настоящее время я сталкиваюсь с проблемой с загрузкой (используя python) данных EMOJI в БОЛЬШОЙ ЗАПРОС

Это пример кода, который я пытаюсь загрузить в BQ:

 {"emojiCharts":{"emoji_icon":"\ud83d\udc4d","repost": 4, "doc": 4, "engagement": 0, "reach": 0, "impression": 0}} 
 {"emojiCharts":{"emoji_icon":"\ud83d\udc49","repost": 4, "doc": 4, "engagement": 43, "reach": 722, "impression": 4816}} 
 {"emojiCharts":{"emoji_icon":"\u203c","repost": 4, "doc": 4, "engagement": 0, "reach": 0, "impression": 0}} 
 {"emojiCharts":{"emoji_icon":"\ud83c\udf89","repost": 5, "doc": 5, "engagement": 43, "reach": 829, "impression": 5529}} 
 {"emojiCharts":{"emoji_icon":"\ud83d\ude34","repost": 5, "doc": 5, "engagement": 222, "reach": 420, "impression": 2805}} 
 {"emojiCharts":{"emoji_icon":"\ud83d\ude31","repost": 3, "doc": 3, "engagement": 386, "reach": 2868, "impression": 19122}} 
 {"emojiCharts":{"emoji_icon":"\ud83d\udc4d\ud83c\udffb","repost": 5, "doc": 5, "engagement": 43, "reach": 1064, "impression": 7098}} 
 {"emojiCharts":{"emoji_icon":"\ud83d\ude3b","repost": 3, "doc": 3, "engagement": 93, "reach": 192, "impression": 1283}} 
 {"emojiCharts":{"emoji_icon":"\ud83d\ude2d","repost": 6, "doc": 6, "engagement": 212, "reach": 909, "impression": 6143}} 
 {"emojiCharts":{"emoji_icon":"\ud83e\udd84","repost": 8, "doc": 8, "engagement": 313, "reach": 402, "impression": 2681}} 
 {"emojiCharts":{"emoji_icon":"\ud83d\ude18","repost": 7, "doc": 7, "engagement": 0, "reach": 8454, "impression": 56366}} 
 {"emojiCharts":{"emoji_icon":"\ud83d\ude05","repost": 5, "doc": 5, "engagement": 74, "reach": 1582, "impression": 10550}} 
 {"emojiCharts":{"emoji_icon":"\ud83d\ude04","repost": 5, "doc": 5, "engagement": 73, "reach": 3329, "impression": 22206}}

Проблема в том, что большой запрос не может увидеть ни одного из этих смайликов (\ud83d\ude04) и будет отображаться только в этом формате (\u203c)

Даже если поле STRING отображает 2 черных ромба, почему BQ не может отобразить эмодзи в виде строки, не преобразовав ее в фактические эмодзи?

Вопросы:

Есть ли способ загрузить EMOJI в Big Query, чтобы он загружался правильно? - "будет использоваться в Google Data Studio"

Должен ли я (жестко запрограммирован) изменять все коды смайликов на приемлемые, какой формат является приемлемым?

3 ответа

Решение

Как пользователь "цифра" упоминает в своем комментарии:

Проверьте http://charbase.com/1f618-unicode-face-throwing-a-kiss Что вы хотите, чтобы преобразовать escape-символы javascript в фактические данные Unicode.

вам нужно изменить кодировку смайликов, чтобы они были точно представлены как один символ:

SELECT "\U0001f604 \U0001f4b8"
--   , "\ud83d\udcb8"
--   , "\ud83d\ude04"

2-я и 3-я строка терпят неудачу с ошибкой как Illegal escape sequence: Unicode value \ud83d is invalid at [2:7], но первая строка дает правильное отображение в BigQuery и Data Studio:

Дополнительные мысли по этому поводу:

Python не поддерживает представление «суррогатных символов», которое состоит из нескольких символов UTF-16, и некоторые смайлы (сверх) их используют. Например, 🏦 можно представить как \U0001f3e6 (UTF-32) в Python и некоторых языках использует \ud83c\udfe6. Для этих значений меньше, Python и другие языки используют одно и то же представление, например \u3020(〠). Чтобы решить проблему с кодировкой, вы можете вручную преобразовать символы эмодзи или рассмотреть возможность использования некоторых библиотек, например https://github.com/hartwork/surrogates, чтобы преобразовать их в UTF-32.

Кроме того, клиент BigQueqry Python load_table_from_json была ошибка с теми персонажами, чьи значения превышены 0xFFFF, даже если вы используете правильное представление UTF-32. Он только что выпустил новую версию, чтобы исправить это пару дней назад. ссылка: https://github.com/googleapis/python-bigquery/releases/tag/v2.24.0

Некоторые упоминания о банковских смайликах 🏦 с указанием различных представлений:

Это может быть связано с ответом на аналогичный вопрос, который я разместил здесь, /questions/56275014/big-query-izvlech-pole-json-soderzhaschee-emodzi/58680741#58680741

Другие вопросы по тегам