Size: a a a

2020 August 31

R

Roman in Data Engineers
Toemik Mnemonic
Всем привет. Есть задача отправлять в СУБД данные из pd.DataFrame(), но не бакетом, а построчно (для логирования и для того что бы при ошибке импортировались корректные строки). Как я понимаю циклом пройтись по датафрейму не самая лучшая идея в плане производительности. Куда посоветуете смотреть?
Записать в БД датафрейм. Он будет записан построчно в БД.
источник

TM

Toemik Mnemonic in Data Engineers
Roman
Записать в БД датафрейм. Он будет записан построчно в БД.
Если будет ошибка импорта , инсерт не завершится , на уровне БД не будет ни одной записи. и возможности вывести в лог на какой строке датафрейма импорт упал тоже , вроде бы нет.
источник

Ж

Жмака in Data Engineers
Привет. Пытаюсь на EMR читать паркеты с S3 (лист с путями к каждому файлу в spark read parquet). Файлов 25000, поэтому очень медленно. Помимо добавления экзекьбторов можно еще как то оптимизировать? Пытался через spark sql с условием filter(есть партиции по дате), вроде быстрее. С просто запросом sql (select from db.table (запрос в athena) ) падает с ошибкой connection refused. Какой вариант будет быстрее?
источник

DZ

Dmitry Zuev in Data Engineers
источник

ПФ

Паша Финкельштейн... in Data Engineers
Жмака
Привет. Пытаюсь на EMR читать паркеты с S3 (лист с путями к каждому файлу в spark read parquet). Файлов 25000, поэтому очень медленно. Помимо добавления экзекьбторов можно еще как то оптимизировать? Пытался через spark sql с условием filter(есть партиции по дате), вроде быстрее. С просто запросом sql (select from db.table (запрос в athena) ) падает с ошибкой connection refused. Какой вариант будет быстрее?
Лист в датафрейм, а там map?
источник

ПФ

Паша Финкельштейн... in Data Engineers
Но в целом работа с большим количеством файлов всегда будет медленной
источник

Ж

Жмака in Data Engineers
Лист с путями паркетов загружается как spark.read.parquet(list: _*)
источник

Ж

Жмака in Data Engineers
Паша Финкельштейн
Но в целом работа с большим количеством файлов всегда будет медленной
Это просто очень медленно. Больше 3 часов
источник

GT

Gennady Timofeev in Data Engineers
Жмака
Привет. Пытаюсь на EMR читать паркеты с S3 (лист с путями к каждому файлу в spark read parquet). Файлов 25000, поэтому очень медленно. Помимо добавления экзекьбторов можно еще как то оптимизировать? Пытался через spark sql с условием filter(есть партиции по дате), вроде быстрее. С просто запросом sql (select from db.table (запрос в athena) ) падает с ошибкой connection refused. Какой вариант будет быстрее?
Это у вас партиции?
источник

DZ

Dmitry Zuev in Data Engineers
Жмака
Лист с путями паркетов загружается как spark.read.parquet(list: _*)
Сделай построение плана параллельное
источник

ПФ

Паша Финкельштейн... in Data Engineers
Жмака
Лист с путями паркетов загружается как spark.read.parquet(list: _*)
Как ты понимаешь, есть альтернативный вариант.
listOfFiles.map(spark.read.parquet(_)).reduce(_.union(_))
источник

Ж

Жмака in Data Engineers
Gennady Timofeev
Это у вас партиции?
Да
источник

K

KrivdaTheTriewe in Data Engineers
Жмака
Привет. Пытаюсь на EMR читать паркеты с S3 (лист с путями к каждому файлу в spark read parquet). Файлов 25000, поэтому очень медленно. Помимо добавления экзекьбторов можно еще как то оптимизировать? Пытался через spark sql с условием filter(есть партиции по дате), вроде быстрее. С просто запросом sql (select from db.table (запрос в athena) ) падает с ошибкой connection refused. Какой вариант будет быстрее?
Мы на зио сделали обертку и читаем в паралель, потом делаем union
источник

ПФ

Паша Финкельштейн... in Data Engineers
Или там на параллельных стримах
источник

R

Roman in Data Engineers
Жмака
Привет. Пытаюсь на EMR читать паркеты с S3 (лист с путями к каждому файлу в spark read parquet). Файлов 25000, поэтому очень медленно. Помимо добавления экзекьбторов можно еще как то оптимизировать? Пытался через spark sql с условием filter(есть партиции по дате), вроде быстрее. С просто запросом sql (select from db.table (запрос в athena) ) падает с ошибкой connection refused. Какой вариант будет быстрее?
в афине ctas создать таблицу с форматом паркет/орк и фиксированным локейшеном. Получится меньше файлов намного и только то, что вам нужно. И потом из этого локейшена вычитать спарком. Афина, скорее всего, намного быстрее прочитает эти файлы и создаст то, что вам нужно.
источник

Ж

Жмака in Data Engineers
Паша Финкельштейн
Как ты понимаешь, есть альтернативный вариант.
listOfFiles.map(spark.read.parquet(_)).reduce(_.union(_))
Он быстрее? В чем улучшение?
источник

ИК

Иван Калининский... in Data Engineers
Паша Финкельштейн
Как ты понимаешь, есть альтернативный вариант.
listOfFiles.map(spark.read.parquet(_)).reduce(_.union(_))
в HDFS и Spark 2.2.0 это выполнится за несколько чвсов или суток
источник

ПФ

Паша Финкельштейн... in Data Engineers
Жмака
Он быстрее? В чем улучшение?
Надо смотреть быстрее ли
источник

K

KrivdaTheTriewe in Data Engineers
Паша Финкельштейн
Как ты понимаешь, есть альтернативный вариант.
listOfFiles.map(spark.read.parquet(_)).reduce(_.union(_))
Он будет последовательным
источник

K

KrivdaTheTriewe in Data Engineers
Короче
источник