Size: a a a

2019 September 24

AZ

Anton Zadorozhniy in Data Engineers
но последнее может дать в два раза ускорение максимум...
источник

RI

Rustam Iksanov in Data Engineers
Вопрос по spark phoenix connector. Читаю через
spark.read
     .format("org.apache.phoenix.spark")
     .options(Map("table" -> tableName, "zkUrl" -> phoenixHost))
     .load.show()
ставлю фильтр по ключу. jdbc клиенты отрабатывают очень быстро(пару секунд максимум), а вот спарк не хочет это делать быстро, ранится минутами. Кто-нибудь сталкивался с этим?
источник

RI

Rustam Iksanov in Data Engineers
Я кажется разобрался. В таком варианте, spark не закидывает фильтр внутрь запроса. Кто-то может сказать, как это сделать? Или только через jdbc?
источник

DZ

Dmitry Zaytsev in Data Engineers
Rustam Iksanov
Я кажется разобрался. В таком варианте, spark не закидывает фильтр внутрь запроса. Кто-то может сказать, как это сделать? Или только через jdbc?
Как тут на пример
val pushdownQuery = """(SELECT DISTINCT(FLIGHT_NUMBER) blah blah blah ) tbl_alias""" val dbDataFrame = spark.read.jdbc(url, pushdownQuery, "COUNTRY_CODE", 0L, 4L, 4, connectionProperties)
источник

DZ

Dmitry Zaytsev in Data Engineers
With Pushdown query in spark, how to get parallelism in spark-HBASE (BIGSQL as SQL engine)? - Stack Overflow
https://stackoverflow.com/questions/51977471/with-pushdown-query-in-spark-how-to-get-parallelism-in-spark-hbase-bigsql-as-s
источник

RI

Rustam Iksanov in Data Engineers
Я так и сделал. Искал иные варианты
источник
2019 September 25

DZ

Dmitry Zaytsev in Data Engineers
Rustam Iksanov
Я так и сделал. Искал иные варианты
Могу ошибаться. Судя по всему все в "руках" используемого коннектора.
В jdbc как правило обходимся запросом вместо таблицы.
Cassandra коннектор вроде бы умеет пробрасывать предикат но только по определенным правилам и видимо не все.
https://docs.datastax.com/en/dse/6.0/dse-dev/datastax_enterprise/spark/sparkPredicatePushdown.html
источник

DZ

Dmitry Zaytsev in Data Engineers
Orc, parquet пробрасываются
источник

DZ

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

DZ

Dmitry Zaytsev in Data Engineers
Надо читать доку на феникс
источник

C

Combot in Data Engineers
Saha Power has been banned! Reason: CAS ban.
источник

RI

Rustam Iksanov in Data Engineers
Инженеры! Вопрос такой. Посмотрел примеры, и при join'ах советуют указывать массив с названием колонок, по которым нужно объединять, чтобы не возникало дублей колонок. Почему не советуют такой прием: a.join(b, a.columns.intersect(b.columns)) ? Чтобы точно объединять по пересекающимся?
источник

RI

Rustam Iksanov in Data Engineers
И еще вопрос, можно ли сделать запись датафрейма в разные приемники данных параллельно.
источник

АП

Алексей Пахомов in Data Engineers
Rustam Iksanov
Инженеры! Вопрос такой. Посмотрел примеры, и при join'ах советуют указывать массив с названием колонок, по которым нужно объединять, чтобы не возникало дублей колонок. Почему не советуют такой прием: a.join(b, a.columns.intersect(b.columns)) ? Чтобы точно объединять по пересекающимся?
Начнем с простого, не всегда natural join является тем, что вы хотите. Например в числе пересекающихся колонок оказался какой нибудь заботливо оставленный флаг, отладить такой кейс будет ооочень тяжело в силу неявности действия
источник

RI

Rustam Iksanov in Data Engineers
Алексей Пахомов
Начнем с простого, не всегда natural join является тем, что вы хотите. Например в числе пересекающихся колонок оказался какой нибудь заботливо оставленный флаг, отладить такой кейс будет ооочень тяжело в силу неявности действия
Я согласен, но искать по коду, где происходит дублирование колонок, просто потому, что эту колонку забыли включить в джоин тоже не просто.
источник

АП

Алексей Пахомов in Data Engineers
Ровно это и иллюстрирует проблему, вы хотя бы знаете, что нужно что-то искать, в обратном случае вместо указания, что нужно разрешить конфликт, вы получаете утечку где-то в длинном пайплайне, которую ещё нужно обнаружить
источник

АП

Алексей Пахомов in Data Engineers
А ужастиков можно начитатся во всех natural join топиках, там и про миграции есть ( аналогичный кейс с select *)
источник

RI

Rustam Iksanov in Data Engineers
Алексей Пахомов
Ровно это и иллюстрирует проблему, вы хотя бы знаете, что нужно что-то искать, в обратном случае вместо указания, что нужно разрешить конфликт, вы получаете утечку где-то в длинном пайплайне, которую ещё нужно обнаружить
То есть натурально, лучше всего делать просто Seq(columns) ручным способом?
источник

АП

Алексей Пахомов in Data Engineers
Явно указать по чему соединяете, если вы уверены что ещё одна колонка не повредит соединению, то добавляете, если повредит переименовывете или удаляете
источник

RI

Rustam Iksanov in Data Engineers
Спс
источник