Size: a a a

2020 October 02

DG

Denis Gabaydulin in Moscow Spark
Я вчера задавал вопрос. А может кто-то ответить. У меня ощущение, что я пропустил что-то важное. Кто-нибудь может пояснить контекст?
источник

DG

Denis Gabaydulin in Moscow Spark
Я немного не понял, а в каком контексте речь шла о том, что Спарк иногда cpu-bound, а не I/o. То есть это к чему (сорри не уловил)?
источник

PK

Pavel Klemenkov in Moscow Spark
Denis Gabaydulin
Я вчера задавал вопрос. А может кто-то ответить. У меня ощущение, что я пропустил что-то важное. Кто-нибудь может пояснить контекст?
Ты задал вопрос, но сделал это без уважения, поэтому сиди и страдай теперь ))
источник

E

Eugene in Moscow Spark
🤣🤣🤣
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Pavel Klemenkov
Ты задал вопрос, но сделал это без уважения, поэтому сиди и страдай теперь ))
Можно я буду использовать это в качестве комментария на стековерфлоу?
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Репутацию мне сольют, конечно, но оно того стоит
источник

E

Eugene in Moscow Spark
+
источник

PK

Pavel Klemenkov in Moscow Spark
Ладно, чет это по-мудацки вышло. Кароч, как я понял, возможно неверно. При чтении паркетов, типа кучи мелких файлов, Спарк тратит просто дохера процессорного времени на конвертации столбцов в Internal row и вот эта бодяга становится более cpu bound, чем io bound
источник

PK

Pavel Klemenkov in Moscow Spark
Но лучше я бобу в слачке сейчас вопрос задам
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Pavel Klemenkov
Ладно, чет это по-мудацки вышло. Кароч, как я понял, возможно неверно. При чтении паркетов, типа кучи мелких файлов, Спарк тратит просто дохера процессорного времени на конвертации столбцов в Internal row и вот эта бодяга становится более cpu bound, чем io bound
чот странно. По идее должно быть похер если схема уже выведена
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Ну то есть глобально похер
источник

AS

Andrey Smirnov in Moscow Spark
Паша Финкельштейн
чот странно. По идее должно быть похер если схема уже выведена
а если я читаю уже со схемой?
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Andrey Smirnov
а если я читаю уже со схемой?
Ну вот это то, о чём я говорю
источник

PK

Pavel Klemenkov in Moscow Spark
Паша Финкельштейн
чот странно. По идее должно быть похер если схема уже выведена
Не понял, а при чем тут схема, если тупо формат столбцовый, а его надо в Internal row сконвертить
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Ну то есть конечно там есть расходы на декомпрессию, на превращение столбцов в строки и так далее. Но кажется что прочитать маленький файл в память и там всё расжать сложнее чем большой файл
источник

AS

Andrey Smirnov in Moscow Spark
Pavel Klemenkov
Не понял, а при чем тут схема, если тупо формат столбцовый, а его надо в Internal row сконвертить
в том, что если нет схемы, он в каждый файл лезет и читает ее, и потом пытается вывести общую
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Pavel Klemenkov
Не понял, а при чем тут схема, если тупо формат столбцовый, а его надо в Internal row сконвертить
представь себе что тебе надо прочесть паркет с миллиардом строк, где первый столбец схлопывается в одну запись, второй в две, третий в 4 и так далее. Тебе придётся в памти гигантский экспанд делать. Если же у тебя в файле 1000 строк — то такой экспанд будет гораздо меньше и гораздо легче влезет в ноду.

где у меня ошибка в логике?
источник

PK

Pavel Klemenkov in Moscow Spark
Хз, я чет плохо представляю внутрянку паркета по ходу
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Pavel Klemenkov
Хз, я чет плохо представляю внутрянку паркета по ходу
Он почти как орк:
в конце меджик, хранящий размер футера, в футере схема и указатели на позиции страйпов и всякая мета, каждый страйп хранит заголовок с информацией о колонках какой-то, пожаты ли эти колонки и так далее. Дальше после заголовка страйпа ты читаешь данные подряд и оказывается что ты прочитал первую пожатую колонку, вторую и так далее.
источник

VM

Vladimir Morozov in Moscow Spark
Eugene
В том-то и плюс. Многие очевидные вещи для меня не очевидны для других. Твои исправления позволяют мне сделать материал более доступным. Спасибо!
Без зависимостей на: spark-core, kafka и сейчас еще ищу откуда взять org/apache/kafka/common/protocol/SecurityProtocol - не стартует kafkaTestUtils.setup(). Возможно инфа про это есть где-то в предыдущих частях статей, если так то стоит дать ссылку в туда.

Применяемый в примере кода Utils.deleteRecursively является приватным объектом из внутрянки спарка, то есть доставать этот метод надо тоже через хак, по аналогии с PublicKafkaTestUtils
И это пример всё еще не запустился…

Второй вариант это написать перед примером кода - это просто пример, который показывает базовый принцип но не запускается

Третий вариант, в конце статьи дать ссылку на репозиторий где будут микро-проекты с рабочими примерами - это в разы повысит полезность материала.
источник