там.
Я рассматриваю тип данных в столбце куста, между строкой в формате json и картой.
По моему здравому смыслу, аргументов в пользу того, что тип карты однозначно быстрее, чем json string
, нет. Однако я понятия не имею, как hive обрабатывает данные в типе карты, поэтому не могу это доказать.
Если я просто хочу поставить немного single depth nested data
в столбец, карта будет лучшим выбором? и насколько быстрее, чем json string
?
Карта также сериализуется как строка и хранится в строках. Данные, передаваемые между преобразователем и преобразователем, сериализуются в строки, а затем снова десериализуются. Вы не заметите разницы. Но в случае типа данных карты SerDe будет десериализоваться как тип карты, и вы можете напрямую применять операторы карты в запросе, например select m[key]
, size(m)
или map_keys(m)
. Это выглядит намного проще, чем использование JSON_TUPLE()
, вероятно, вместе с lateral view
или GET_JSON_OBJECT()
, в этом случае карта может работать немного быстрее, хотя JSON может хранить более сложные структуры, такие как вложенные массивы карт. Выберите карту, если она подходит для ваших данных, и JSON для сложных структур.