Size: a a a

2019 April 10

ЕГ

Евгений Глотов... in Moscow Spark
Чтение да, по рядам, но потом-то на сложных запросах будет перевод в колоночное, или нет?
источник

DU

Dmitry Ursegov in Moscow Spark
нет, наоборот, даже после запроса над колонками, которые из паркета получились будут опять строки
источник

AS

Andrey Smirnov in Moscow Spark
Евгений Глотов
Чтение да, по рядам, но потом-то на сложных запросах будет перевод в колоночное, или нет?
сомневаюсь, может только в последней версии с какими-то экспериментальными настройками и когда весь датасет поместили в память
источник

N

Nikolay in Moscow Spark
Dmitry Ursegov
нет, наоборот, даже после запроса над колонками, которые из паркета получились будут опять строки
Вот . Даже из паркета не будет колоночного
источник

N

Nikolay in Moscow Spark
Колоночное может получится только , когда много данных в памяти много. Может быть при чтении из hdfs даже из csv и возможно колонки. Т.к он все же блоками читает . Т.е считал 256 мегабайт же
источник

VK

Vasily Kolpakov in Moscow Spark
Nikolay
Я то думаю, что если нет операций , которые сильно потребляют память ( sort, join, agg) то никакого колумнара и не будет.
Колоночное представление точно используется в Dataset.persist. В sort, join, agg вроде ничего такого нет, в shuffle тоже строчки идут.
источник

VK

Vasily Kolpakov in Moscow Spark
На счёт колоночного представления есть тикет https://issues.apache.org/jira/browse/SPARK-15687 , его закрыли с комментом
> Actually closing this, since with whole-stage code generation, it's unclear what it means to have a columnar execution engine. In many cases whole-stage code generation is more advanced what a column-oriented execution engine would do.
источник

N

Nikolay in Moscow Spark
Vasily Kolpakov
Колоночное представление точно используется в Dataset.persist. В sort, join, agg вроде ничего такого нет, в shuffle тоже строчки идут.
Спасибо . А почему такая уверенность про persist ?
источник

VK

Vasily Kolpakov in Moscow Spark
Nikolay
Спасибо . А почему такая уверенность про persist ?
По коду посмотрел, колонки хранятся в InMemoryRelation'ах, а они в persist используются.
источник

DU

Dmitry Ursegov in Moscow Spark
источник
2019 April 11

N

Nikolay in Moscow Spark
Если я пишу persist, то какая область действия его ? Вот например у меня. Read.csv .map(). persist().groupby.map.filter
. В какой момент в памяти начнет сохранятся и когда освободится память. Groupby я написал , что бы спросит будет ли в следующем stage доступен этот кэш
источник

GP

Grigory Pomadchin in Moscow Spark
Nikolay
Если я пишу persist, то какая область действия его ? Вот например у меня. Read.csv .map(). persist().groupby.map.filter
. В какой момент в памяти начнет сохранятся и когда освободится память. Groupby я написал , что бы спросит будет ли в следующем stage доступен этот кэш
val df = blablabla.map
df.filter1
df.filter2

val dfp = blablabla.map.persist()

dfp.filter1
dfp.filter2


в первом случае оба фильтра будут колать блаблаблу, читать ее и применять мап

во втором случае будут юзать заперститеный кусок рдд
источник

GP

Grigory Pomadchin in Moscow Spark
персистся дф / рдд в состоянии после применения последней функции перед применением .persist
источник

GP

Grigory Pomadchin in Moscow Spark
зачастую сатанисты везде пихают свои персисты и ничо не работает в итоге
источник

GP

Grigory Pomadchin in Moscow Spark
источник

N

Nikolay in Moscow Spark
А кто тогда персистит ? Сам persist же взводит только переменную, которая отвечает за уровень персистита. В какой rdd происходит сохранение в память ?
источник

GP

Grigory Pomadchin in Moscow Spark
Nikolay
А кто тогда персистит ? Сам persist же взводит только переменную, которая отвечает за уровень персистита. В какой rdd происходит сохранение в память ?
когда персист вызываешь у тебя создается копия всей рдд и она сторится у тебя или в память или кудато еще (куда ты укажешь в персист левеле)
источник

AA

Anton Alekseev in Moscow Spark
Grigory Pomadchin
зачастую сатанисты везде пихают свои персисты и ничо не работает в итоге
++++ на личном опыте подтверждаю, но я исправился))
источник

GP

Grigory Pomadchin in Moscow Spark
так что я не понимаю твой вопрос
источник

GP

Grigory Pomadchin in Moscow Spark
‘персист взводит только переменную'
источник