Size: a a a

2019 July 05

AA

Aleksandr Aleksandro... in Moscow Spark
источник

AA

Aleksandr Aleksandro... in Moscow Spark
Судя по второму тикету, возможно еще поможет
spark.conf.set("spark.sql.orc.enableVectorizedReader", "false")
источник

G

Gev in Moscow Spark
Aleksandr Aleksandrov
Судя по второму тикету, возможно еще поможет
spark.conf.set("spark.sql.orc.enableVectorizedReader", "false")
👍 спасибо большое.
источник
2019 July 06

☭S

☭ ⤳ λ Shinkevich... in Moscow Spark
Datamove
Привет, Коллеги! Вопрос к практикующим.
Есть спарк с хадупом, стандартный дистрибутив HDP.
Есть некая задача агрегации данных, которую надо запускать как батч или стрим, и она читает из кафки и пишет в кафку. Топиков много, задач надо много запускать, но код одинаковый. *Вопрос: Как вы параметризуете задачи?*. Т.е. чтоб передавать, например, топики как параметры?
Я такое пытался делать:
в программу передается название приложения, по нему читается из конфига параметры:
appName = sys.argv[1]
spark = SparkSession.builder.appName(appName).getOrCreate()
topic_in = spark.conf.get("spark."+appName+".topic_in")
такой конфиг можно, например, хранить в zookeeper.
Меня интересует, есть ли какой-то более правильный и удобный способ?
Вопрос, повторяю, на стандартном кластере, а не в облаке, не для кубернетеса и проч. Спасибо заранее!
Народ, я вас не понимаю.... ну есть у вас кафка, в ней топиков дофига... ну, добавьте еще один, в который задания будут приходить со всей конфой... и задачи запускайте периодически, из oozie, например... задача смотрит топик конфы, если пусто - завершается. если что-то есть  - запускает sparkSession и погнали
источник

DG

Denis Gabaydulin in Moscow Spark
Datamove
Привет, Коллеги! Вопрос к практикующим.
Есть спарк с хадупом, стандартный дистрибутив HDP.
Есть некая задача агрегации данных, которую надо запускать как батч или стрим, и она читает из кафки и пишет в кафку. Топиков много, задач надо много запускать, но код одинаковый. *Вопрос: Как вы параметризуете задачи?*. Т.е. чтоб передавать, например, топики как параметры?
Я такое пытался делать:
в программу передается название приложения, по нему читается из конфига параметры:
appName = sys.argv[1]
spark = SparkSession.builder.appName(appName).getOrCreate()
topic_in = spark.conf.get("spark."+appName+".topic_in")
такой конфиг можно, например, хранить в zookeeper.
Меня интересует, есть ли какой-то более правильный и удобный способ?
Вопрос, повторяю, на стандартном кластере, а не в облаке, не для кубернетеса и проч. Спасибо заранее!
Для этого мы пишем отдельные системы.
Например у еас есть конфигурация в HOCON формате. Там конфигурируется все про топик, включая какие дц, какие сервера, схема данных, валидация, какие обработчики, пути и даже функции работы с датой.
источник

DG

Denis Gabaydulin in Moscow Spark
Это называется метаданные.
источник
2019 July 08

G

Gev in Moscow Spark
spark.conf.set("spark.sql.orc.enableVectorizedReader", "false")
Решает проблему некорректного времени.
Проблема именно при чтении (если я правильно понял).
источник

AS

Andrey Smirnov in Moscow Spark
Gev
spark.conf.set("spark.sql.orc.enableVectorizedReader", "false")
Решает проблему некорректного времени.
Проблема именно при чтении (если я правильно понял).
Как-то радикально, скорость чтения падает, может проще хранить как long и уже потом преобразовывать в timestamp?
источник

G

Gev in Moscow Spark
Andrey Smirnov
Как-то радикально, скорость чтения падает, может проще хранить как long и уже потом преобразовывать в timestamp?
Ага. Согласен. И да. Будем в логах хранить
источник

G

Gev in Moscow Spark
Кстати может не савскм сюда. Я сталкнулся с тем, что long orc файла в hive возвращает null
источник
2019 July 10

DG

Denis Gabaydulin in Moscow Spark
Продолжу вопросы про stat.
dataFrame.queryExecution.analyzed.stats
Кто-нибудь знает, в какой момент данные туда попадают?
источник

PK

Pavel Klemenkov in Moscow Spark
Хороший вопрос )
источник

DG

Denis Gabaydulin in Moscow Spark
Еще странно то что в Zeppelin у меня стата есть, а в регулярных рассчетах нет. При этом спарк одинаковый, а spark.sql.cbo.enabled = false.
источник

DG

Denis Gabaydulin in Moscow Spark
Возможно, он срабатывает только для примитивных запросах или для тех, где все источники данных analyzed.
источник

DG

Denis Gabaydulin in Moscow Spark
Ну в общем пока нет join все ок, как только join, то похоже что estimation делается тупо аля A * B * C. И конечно цифры там совершенно нереальные получаются. Типа десятки петабайт )
источник

PK

Pavel Klemenkov in Moscow Spark
И cbo по этим цифрам физический план выбирает?
источник

DG

Denis Gabaydulin in Moscow Spark
Если только сам оптимизатор включен.

Возможно, что будет адекватнее, если делать на sql, а не df api.
источник

DG

Denis Gabaydulin in Moscow Spark
Я то хотел с помощью этой штуки написать size estimator, чтобы кол-во выходных партиций подбирать (под размер блока в HDFS).
источник
2019 July 11

M

Mikhail in Moscow Spark
Всем привет. Как в IntelliJ правильно указать количество экзекьюторов при локальном тестировании spark приложения? Передаю в VM options -Dspark.executor.instances=4, но при запуске в SparkUI все равно видно, что используется один экзекьютор. При установке программно через SparkConf та же проблема.
источник

GP

Grigory Pomadchin in Moscow Spark
Mikhail
Всем привет. Как в IntelliJ правильно указать количество экзекьюторов при локальном тестировании spark приложения? Передаю в VM options -Dspark.executor.instances=4, но при запуске в SparkUI все равно видно, что используется один экзекьютор. При установке программно через SparkConf та же проблема.
ресурсов не хватает ему;
источник