Я могу использовать Терракоту для масштабирования интенсивного RAM приложения?

Возможно, лучший способ, чем функция zip (, так как UDF и UDAF очень плохи для производительности ), состоит в том, чтобы обернуть два столбца в Struct.

Возможно, это сработает:

df.select('name, struct('food, 'price).as("tuple"))
  .groupBy('name)
  .agg(collect_list('tuple).as("tuples"))
7
задан sanity 22 September 2008 в 20:36
поделиться

1 ответ

Я сказал бы, что ответ является квалифицированным да для этого. Терракота действительно позволяет Вам работать с кластеризованной "кучей", больше, чем размер единственной JVM, хотя это не случай наиболее популярного способа использования.

Все еще необходимо иметь в виду a) размер рабочего набора и b) трафик объема данных. Для a), существует некоторый набор данных, которые должны быть в памяти для выполнения работы в любой момент времени и если тот размер рабочего набора> размер "кучи", производительность, очевидно, пострадает. Для b), каждая часть данных добавила/обновила в кластеризованной "куче", должен быть отправлен на сервер. Терракота является лучшей при изменении мелкомодульных полей в pojo графиках. Работа с большими массивами не пользуется лучшим премуществом Терракотовых возможностей (что не означает, что люди не используют его тот путь иногда).

Если Вы создаете много мусора, то Терракотовые диспетчеры памяти и распределенный сборщик "мусора" должны смочь не отставать от этого. Трудно сказать, не пробуя его, превышают ли Ваши объемы данных доступную пропускную способность там.

Ваше приложение извлечет выгоду чрезвычайно, если Вы выполните несколько серверов, и данные делятся сервером или имеют некоторую сумму местности ссылки. В этом случае Вам только нужны данные для раздела одного сервера в "куче", и остальное не должно быть дано сбой в память. Это будет, конечно, дано сбой при необходимости для обработки отказа/доступности, если другие серверы понизятся. То, что это означает, - то, что в случае разделенных данных, Вы не являетесь широковещательными ко всем узлам, только отправляя транзакции на сервер.

С точки зрения чисел это возможно к индексу 30GB данных, таким образом, это не близко ни к какому жесткому пределу.

4
ответ дан 7 December 2019 в 14:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: