Size: a a a

2020 March 30

K

KrivdaTheTriewe in Moscow Spark
новым датасорсом
источник

K

KrivdaTheTriewe in Moscow Spark
я знаю, кеп
источник

K

KrivdaTheTriewe in Moscow Spark
Nikolay
1 терабайт в оракле. Ты перекачать, но не быстро. Расскажи какими запросами ты его бомбить будешь. По диапазону rowid? Тут я бы сказал , что сессий не надо много открывать , а то ты его затормозить ).
rowid не численный
источник

K

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

N

Nikolay in Moscow Spark
KrivdaTheTriewe
rowid не численный
По нему можно делать between. Это один из подходов обрабатывать значительный кусок данных, но сначала надо все разбить на диапазоны rowid Он зато тем хорош,что читать по нему легко ораклу ( он сразу знает файл, блок и строку).
источник

K

KrivdaTheTriewe in Moscow Spark
знаю
источник

K

KrivdaTheTriewe in Moscow Spark
а как сделать between
источник

K

KrivdaTheTriewe in Moscow Spark
ну что слева,что справа
источник

K

KrivdaTheTriewe in Moscow Spark
если rowid не число
источник

GP

Grigory Pomadchin in Moscow Spark
он наверн лексикографически умеет?
источник

GP

Grigory Pomadchin in Moscow Spark
(но всеравно херня если смысл ровидов другой)
источник

K

KrivdaTheTriewe in Moscow Spark
Grigory Pomadchin
он наверн лексикографически умеет?
я вот не знаю, есть ли там лексиграфический порядок
источник

N

Nikolay in Moscow Spark
KrivdaTheTriewe
а как сделать between
лучше найти готовый запрос. в oracle есть пакет, который сам это умеет делать ,но название его не помню. или вот тут например посмотреть https://clarodba.wordpress.com/2017/06/15/how-to-manually-break-a-full-table-scan-into-ranges-of-rowid/
источник

N

Nikolay in Moscow Spark
dbms_parallel_execute.create_chunks_by_rowid
источник

N

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

K

KrivdaTheTriewe in Moscow Spark
пасибо
источник

ИК

Иван Калининский... in Moscow Spark
Прошу подсказки, выполнение на реальных данных в самом деле печальное.

Ещё раз рассказываю ситуацию: произвольная таблица партиционируется по некотором выражению, я получаю количество файлов в каждой партиции и выполняю функцию percentile_approx. Второй её аргумент - массив процентилей, зависит от числа файлов, то есть, динамический. Но передан может быть только фиксированный литерал. Поэтому я применяю к исходном датафрейму фильтр, выполняю percentile_approx, собираю новый датафрейм из полученных с помощью reduce(_ unión _), и на этом основные сложности заканчиваются.

Основной вопрос: как избавиться от union, сохранив расчёт значений процентилей индивидуальным по каждой партиции?
Смотрел в сторону mapPartitions, но не смог разобраться, как можно вызвать percentile_approx для итератора.
источник

ИК

Иван Калининский... in Moscow Spark
Переслано от Иван Калининский...
Ребята, может еще поможете в одном кейсе: как можно применить функцию percentile_approx, чтобы ее второй параметр: массив процентилей, которым нужно сопоставить значения, был бы динамический в зависимости от значения конкретного поля. Пока что я делаю это опять через  union, на больших объемах это может стать печальным.
источник

ИК

Иван Калининский... in Moscow Spark
Возможно, тоже стоит реализовать свой source?
источник

ИК

Иван Калининский... in Moscow Spark
Nikolay
dbms_parallel_execute.create_chunks_by_rowid
Это предназначено для внутреннего параллельного выполнения и вряд ли подойдет. Я не смог прикрутить к jdbc, единственное, чего смог добиться - создавать нужное количество csv файлов, чтобы их можно было загрузить в Hadoop, но это был неприемлемый способ, поскольку файлы нужно было передать, не потерять, правильно транслировать информацию о типах данных
источник