Size: a a a

2020 December 22

EC

Eugene Chipizubov in Moscow Spark
я конечно кэп, но может тогда зафиксировать кол-во строк через where?
источник

EC

Eugene Chipizubov in Moscow Spark
Mi
Кто-нибудь знает есть ли способ кастомизировать спарковый partition discovery чтобы на лету решать какие патриции должны быть видны а какие нет?
Возможно опция pathGlobFilter поможет
источник

ИК

Иван Калининский... in Moscow Spark
Eugene Chipizubov
Возможно опция pathGlobFilter поможет
Из скаладока:

* `pathGlobFilter`: an optional glob pattern to only include files with paths matching 
               the pattern. The syntax follows org.apache.hadoop.fs.GlobFilter. 
               It
does not change the behavior of partition discovery.
источник

ИК

Иван Калининский... in Moscow Spark
Но будет интересно узнать результат!
источник

EC

Eugene Chipizubov in Moscow Spark
Иван Калининский
Из скаладока:

* `pathGlobFilter`: an optional glob pattern to only include files with paths matching 
               the pattern. The syntax follows org.apache.hadoop.fs.GlobFilter. 
               It
does not change the behavior of partition discovery.
Мда
источник

AS

Andrey Siunov in Moscow Spark
Альтернативно можно самому собрать список нужных файлов/префиксов и передать его в .load
источник

GP

Grigory Pomadchin in Moscow Spark
Andrey Siunov
Альтернативно можно самому собрать список нужных файлов/префиксов и передать его в .load
можно посмотреть что сурс делает во время лоада и свой дата сорс сделать который переопределит логику; да
источник

AS

Andrey Siunov in Moscow Spark
Это возможно тоже. Но я говорю про то, что .load принимает список файлов/префиксов для загрузки, поэтому не обязательно передавать туда только корневой префикс.
источник

T

T in Moscow Spark
Andrey Siunov
Это возможно тоже. Но я говорю про то, что .load принимает список файлов/префиксов для загрузки, поэтому не обязательно передавать туда только корневой префикс.
В старых версиях если списком передавать большим то вроде как сильно медленней становится
источник

T

T in Moscow Spark
Не помню сходу номер тикита в спарковской джире
источник

AS

Andrey Siunov in Moscow Spark
А, да, ЕМНИП какие-то проблемы с этим были, потому что листинг был не распараллелен, но это вроде исправлено в 3.0.0 или даже раньше. На предыдущих версиях можно распараллелить самому в разные датафреймы и потом объединить их
источник

EC

Eugene Chipizubov in Moscow Spark
Mi
Кто-нибудь знает есть ли способ кастомизировать спарковый partition discovery чтобы на лету решать какие патриции должны быть видны а какие нет?
А можно пример датасета и структуры партиций?, мне что то интересно стало.
источник

M

Mi in Moscow Spark
Eugene Chipizubov
А можно пример датасета и структуры партиций?, мне что то интересно стало.
ну данные не релевантны, а структура примерно такая:

<table-warehouse>/business_date=<date>/version_id=<some_number>/some_business_partition=foo/...

Смысл в том что иногда сорс система для некоторых бизнес дней перезагружает данные с баг фиксами или чем-то еще, и генерируется новая версия чтобы чуть что можно было откатиться на старую, также отдельно лежит небольшая референс таблица которая имеет маппинг актуальной версии к бизнес дате
источник

EC

Eugene Chipizubov in Moscow Spark
Понятно, один из вариантов использовать hdfs snapshot. Если у вас hdfs конечно
источник

EC

Eugene Chipizubov in Moscow Spark
delta, iceberg
источник

EC

Eugene Chipizubov in Moscow Spark
Короче без метаданных на уровне таблицы не обойтись
источник

EC

Eugene Chipizubov in Moscow Spark
А кастомному partition discovery тоже откуда то надо будет знать какие версии брать
источник

M

Mi in Moscow Spark
Eugene Chipizubov
А кастомному partition discovery тоже откуда то надо будет знать какие версии брать
Так Спарк же патриции сам находит через обычный ls warehouse
источник

M

Mi in Moscow Spark
(условно)
источник

EC

Eugene Chipizubov in Moscow Spark
Если не возражаете, продолжу фантазию, на уровне fs можно скрытым партициям к имени партиции слева добавить точку ) Но это совсем уже костыль, зато шустро будет
источник