Size: a a a

2021 April 01

e

er@essbase.ru in Moscow Spark
Иван Калининский
И вот, HashPartitioner настроен на то, чтобы быть совместимым с Hive bucketed table, но с Hive всё не очень складывается, зато в самом спарке работает неплохо. Поэтому спарковские бакетированные таблицы действительно не нужно шафлить, чтобы джойнить с произвольным датафреймом, потому что будет зашафлен этот датафрейм
.. "c Hive не складывается" -  на каком движке ? Tez ? Spark ?
источник

ИК

Иван Калининский... in Moscow Spark
er@essbase.ru
.. "c Hive не складывается" -  на каком движке ? Tez ? Spark ?
Я не раз читал и слышал, что Hive делает бакеты немного по-другому, поэтому спарк использует метастор просто чтобы сохранить метаинформацию и потом использовать её. А так, чистый hive я не использую, про эффективность ничего сказать не могу
источник

А

Алексей in Moscow Spark
Если сделать repartiton, то норм DF без шафла джойнятся https://t.me/deordie_chat/2377
источник

ИК

Иван Калининский... in Moscow Spark
Алексей
Если сделать repartiton, то норм DF без шафла джойнятся https://t.me/deordie_chat/2377
Спасибо, та проверка окончательно убедила меня, что нужно делать свои бакеты, так я и поступил))
источник

ЕГ

Евгений Глотов... in Moscow Spark
Алексей
Если сделать repartiton, то норм DF без шафла джойнятся https://t.me/deordie_chat/2377
Репартишен - это и есть шафл)
источник

А

Алексей in Moscow Spark
Иван Калининский
Спасибо, та проверка окончательно убедила меня, что нужно делать свои бакеты, так я и поступил))
а оно для партицированной таблицы сохраняется?
источник

А

Алексей in Moscow Spark
выше ссылка была на https://jaceklaskowski.gitbooks.io/mastering-spark-sql/content/spark-sql-bucketing.html с примером для обычной
источник

ЕГ

Евгений Глотов... in Moscow Spark
Но можно сделать репартишен и кэш, и джойнить без шафла несколько раз подряд
источник

ИК

Иван Калининский... in Moscow Spark
Алексей
а оно для партицированной таблицы сохраняется?
Да, но партиции тут уже ни при чём
источник

ЕГ

Евгений Глотов... in Moscow Spark
С бакетами есть беда - их количество должно быть одинаковым для обеих таблиц джойна
источник

ЕГ

Евгений Глотов... in Moscow Spark
А это потенциальные проблемы с хранением
источник

ИК

Иван Калининский... in Moscow Spark
Евгений Глотов
С бакетами есть беда - их количество должно быть одинаковым для обеих таблиц джойна
Вот, поэтому в спарк из коробки - хеш - единственный способ добиться одинакового распределения с обеих сторон
источник

А

Алексей in Moscow Spark
Иван Калининский
Да, но партиции тут уже ни при чём
у меня какието смутные воспоминания, что для партицированных таблиц бакетирование не работало
источник

ИК

Иван Калининский... in Moscow Spark
Евгений Глотов
А это потенциальные проблемы с хранением
Ну, это не терадата с её PI, где всё сделано, чтобы максимизировать параллелизм
источник

ИК

Иван Калининский... in Moscow Spark
Алексей
у меня какието смутные воспоминания, что для партицированных таблиц бакетирование не работало
По коду смотрел, должно работать. И у меня в воспоминаниях пример с партицированием, где всё ОК
источник

ЕГ

Евгений Глотов... in Moscow Spark
Иван Калининский
Ну, это не терадата с её PI, где всё сделано, чтобы максимизировать параллелизм
Параллелизм легко максимизировать, вопрос в том, как хранить ежедневную табличку на 800 бакетов, если она весит 10гб в день?
источник

ЕГ

Евгений Глотов... in Moscow Spark
А таблица, с которой ей надо джойниться, 150гб в день
источник

ЕГ

Евгений Глотов... in Moscow Spark
И получается, что либо мы храним избыточное количество файлов, либо мы репартицируем более мелкую на лету, либо мы уменьшаем число бакетов и попадаем на ООМ)
источник

А

Алексей in Moscow Spark
Иван Калининский
По коду смотрел, должно работать. И у меня в воспоминаниях пример с партицированием, где всё ОК
да, работает, видимо, перепутал с хайв бакетированием
источник

ИК

Иван Калининский... in Moscow Spark
Евгений Глотов
Параллелизм легко максимизировать, вопрос в том, как хранить ежедневную табличку на 800 бакетов, если она весит 10гб в день?
Понимаю, я к тому и вёл, что терадата не связана файловым форматом, поэтому там выгоднее делить помельче, не заботясь о размерах. Но мысль почему-то осталась в голове, а не в мессадже(
источник