Size: a a a

2021 January 27

ВК

Вячеслав Колосков... in Moscow Spark
добрый день.
имеется pyspark который я запускаю через spark-submit
настройки такие:
   .config("spark.driver.memory", "200G")
   .config("spark.driver.maxResultSize", "200G")
   .config("spark.executor.instances","100")
   .config("spark.executor.cores", "3")
   .config("spark.executor.memory", "10G")
   .config("spark.memory.offHeap.enabled", "true")
   .config("spark.memory.offHeap.size", "200G")

два вопроса:
1. В списке задач кластера написано, что Allocated Memory равно примерно 1.6 Tb. Но по моим подсчетам должно быть выделено: 100 * 10G  + 200G = 1.2 Tb. Почему выделяется 1.6Tb?
2. Также в списке задач кластера указано Allocated CPU VCores = 101, но я же задал 3 ядра на контейнер? Почему не 301? При этом если провалится Spark UI, то там написано, что на эксзекьютер выделено 3 ядра.
источник

EC

Eugene Chipizubov in Moscow Spark
Вячеслав Колосков
добрый день.
имеется pyspark который я запускаю через spark-submit
настройки такие:
   .config("spark.driver.memory", "200G")
   .config("spark.driver.maxResultSize", "200G")
   .config("spark.executor.instances","100")
   .config("spark.executor.cores", "3")
   .config("spark.executor.memory", "10G")
   .config("spark.memory.offHeap.enabled", "true")
   .config("spark.memory.offHeap.size", "200G")

два вопроса:
1. В списке задач кластера написано, что Allocated Memory равно примерно 1.6 Tb. Но по моим подсчетам должно быть выделено: 100 * 10G  + 200G = 1.2 Tb. Почему выделяется 1.6Tb?
2. Также в списке задач кластера указано Allocated CPU VCores = 101, но я же задал 3 ядра на контейнер? Почему не 301? При этом если провалится Spark UI, то там написано, что на эксзекьютер выделено 3 ядра.
2. spark.dynamicAllocation.maxExecutors попробуй
источник

AS

Aleksandr Severinov in Moscow Spark
Всем привет!
Кто-то же наверняка проходил путь с прокидыванием метрик стриминговой джобы (spark3, cluster mode) в prometheus + grafana?
Хочется рисовать всё, как во вкладке structured streaming в AM
Нагуглил два пути:
1. Поднять graphite, врубить GraphiteSink в metrics.properties, потом забирать в prometheus/grafana
2. Есть “нативная поддержка prometheus" в третьем спарке.
По второму пути есть вопросы:
Я правильно понимаю, что это просто api, который умеет возвращать метрики в прометеевском формате?
По какому урлу он должен быть доступен? Мб я не шарю, но в доке как-то неочевидно написано
источник
2021 January 28

ПФ

Паша Финкельштейн... in Moscow Spark
источник

PK

Pavel Klemenkov in Moscow Spark
Хороший доклад, его кидали уже несколько раз. Добавить в описалово группы можно
источник

ПФ

Паша Финкельштейн... in Moscow Spark
А вот зачем спарк разрешает делать одинаковые колонки, а потом не разрешает их селектать?
источник

ПФ

Паша Финкельштейн... in Moscow Spark
root
|-- year: integer (nullable = true)
|-- genre: string (nullable = true)
|-- year: integer (nullable = true)
|-- genre: string (nullable = true)
|-- count: long (nullable = false)
|-- year: integer (nullable = true)
|-- count: long (nullable = true)
|-- percent: double (nullable = true)
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Причём возникают они такие хорошие на каждой аггрегации
источник

NN

No Name in Moscow Spark
Паша Финкельштейн
А вот зачем спарк разрешает делать одинаковые колонки, а потом не разрешает их селектать?
Мне тоже всегда было интересно
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Так же: есть ли какой-то нормальный способ аггрегировать без этой херни?
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Ну кроме ренеймов, ясен перец
источник

GP

Grigory Pomadchin in Moscow Spark
Паша Финкельштейн
Ну кроме ренеймов, ясен перец
по индексу можешь
источник

ПФ

Паша Финкельштейн... in Moscow Spark
ну да, тоже некрасиво, но могу
источник

e

er@essbase.ru in Moscow Spark
Паша Финкельштейн
root
|-- year: integer (nullable = true)
|-- genre: string (nullable = true)
|-- year: integer (nullable = true)
|-- genre: string (nullable = true)
|-- count: long (nullable = false)
|-- year: integer (nullable = true)
|-- count: long (nullable = true)
|-- percent: double (nullable = true)
на каждую партицию по колонке ?
источник

ИК

Иван Калининский... in Moscow Spark
Паша Финкельштейн
А вот зачем спарк разрешает делать одинаковые колонки, а потом не разрешает их селектать?
Если одинаковые колонки содержатся в полях партиционирования и в файлах данных, то спарк их заселектит, но не даст сохранить в таком же виде, Конечно же, в спарке есть сомнительные решения, с другой стороны, а как еще поступать в библиотеке для любых способов работы с данными?
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Да не, ребят, ну  япросто ною же, всё сделал, всё работает
источник

K

KrivdaTheTriewe in Moscow Spark
Иван Калининский
Если одинаковые колонки содержатся в полях партиционирования и в файлах данных, то спарк их заселектит, но не даст сохранить в таком же виде, Конечно же, в спарке есть сомнительные решения, с другой стороны, а как еще поступать в библиотеке для любых способов работы с данными?
.rdd
источник

K

KrivdaTheTriewe in Moscow Spark
источник

K

KrivdaTheTriewe in Moscow Spark
И все сохраняется
источник

ИК

Иван Калининский... in Moscow Spark
Не пробовал, выглядит олдскуλьно хД

И кто после нескольких лет оракла вообще помыслит, что поля в выборке можно назвать одинаково и не получить эксепшен "ambigious column name"? Новому полю - новый алиас и нет проблем
источник