Size: a a a

2020 January 22

UD

Uncel Duk in Data Engineers
можно свой нескучный на спарке написать
источник

ME

Mikhail Epikhin in Data Engineers
я не удивлюсь если оно под капотом будет вызывать процесс distcp
источник

ME

Mikhail Epikhin in Data Engineers
А, это не спарк репа, наверное тут нормально
источник

M

Mi in Data Engineers
Mikhail Epikhin
я не удивлюсь если оно под капотом будет вызывать процесс distcp
Даже если так, это разве проблема?
источник

ME

Mikhail Epikhin in Data Engineers
Mi
Даже если так, это разве проблема?
ну такое
источник
2020 January 23

DM

David Manukian in Data Engineers
Ребята, глупый вопрос, но к сожалению я его задаю. Я использую спарк 2.1.1, у меня есть 2 пути, в первом пути лежат данные с партициями (не всеми, тех которых нехватает лежат как раз таки в другом пути), а в другом пути лежат точно такие же данные по структуре, только партиции другие, по сути мне нужно из одного источника взять и залить в другой, НО спарк мне не позваляет этого делать, так как если я прочитаю все нехватающие данные с партициями (со 2ого пути) и залью в первый путь, то выдаст ошибку (Путь такой существует), а если я возьму и поставлю mode("overwrite") то вообще все похерит и зальет только то что выкачал из второго источника, как быть?
источник

DM

David Manukian in Data Engineers
По факту надо просто перенести недостающие партиции, но ручками это делать невозможно, очень долго
источник

DM

David Manukian in Data Engineers
знаю что с 2.3 спарк умеет как-то делать overwrite партиций конкретно
источник

DM

David Manukian in Data Engineers
есть один 100%ый вариант, это просто читать на уровне партиции spark.read.orc/parquet("") и класть же на уровне партиции spark.write.orc/parquet(), но это пойдет когда тебе 1-2 раза надо сделать так, а речь идет о сотни партиций, то есть при каждой партии он будет читать spark.read...., это нормально?
источник

K

KrivdaTheTriewe in Data Engineers
David Manukian
Ребята, глупый вопрос, но к сожалению я его задаю. Я использую спарк 2.1.1, у меня есть 2 пути, в первом пути лежат данные с партициями (не всеми, тех которых нехватает лежат как раз таки в другом пути), а в другом пути лежат точно такие же данные по структуре, только партиции другие, по сути мне нужно из одного источника взять и залить в другой, НО спарк мне не позваляет этого делать, так как если я прочитаю все нехватающие данные с партициями (со 2ого пути) и залью в первый путь, то выдаст ошибку (Путь такой существует), а если я возьму и поставлю mode("overwrite") то вообще все похерит и зальет только то что выкачал из второго источника, как быть?
парт ишн бай оверайт
источник

K

KrivdaTheTriewe in Data Engineers
мод
источник

K

KrivdaTheTriewe in Data Engineers
попробуй
источник

K

KrivdaTheTriewe in Data Engineers
ну или попартиционно читай
источник

K

KrivdaTheTriewe in Data Engineers
я за версии не скажу наверное, тогда, но ты можешь по-партиционно перегнать
источник

K

KrivdaTheTriewe in Data Engineers
ну и вариант баш скрипта переливки)
источник

K

KrivdaTheTriewe in Data Engineers
hadoop fs -cp src dst
источник

DM

David Manukian in Data Engineers
да сейчас так и делаю, каждую партицию читаю и лью же сразу. Но у меня партиций в таблице сотни, а таблиц штук 30
источник

K

KrivdaTheTriewe in Data Engineers
ну на спарке написать считывание партиций
источник

K

KrivdaTheTriewe in Data Engineers
ну или если уж хотите, и совсем лень, то заселектить из обоих и юнион сделать
источник

K

KrivdaTheTriewe in Data Engineers
David Manukian
да сейчас так и делаю, каждую партицию читаю и лью же сразу. Но у меня партиций в таблице сотни, а таблиц штук 30
но вы всегда можете же написать путьдотаблицы/партиция=значение
источник