Значения кэша - Spark - PullRequest
       10

Значения кэша - Spark

0 голосов
/ 20 декабря 2018

Разве промежуточные переменные не кэшируются автоматически?

Например:

df = spark.read.csv ('file.csv') ## df не кэшируется

df_two = df.select ('column1') ## df_two автоматически кэшируется

1 Ответ

0 голосов
/ 20 декабря 2018

Spark лениво оценивается, они будут кэшироваться, только если с этим набором данных будет выполнено действие.Вы можете явно кэшировать значение, указав dataset.cache () или dataset.persist ().Преимущество явного его указания заключается в том, что вы можете контролировать, как он кэшируется, будь то в DISK_ONLY / MEMORY_ONLY или в комбинации MEMORY_AND_DISK.

https://jaceklaskowski.gitbooks.io/mastering-apache-spark/spark-rdd-caching.html

df и df_two не кэшируются на основе предоставленного вами кода.Они кэшируются только тогда, когда над ними выполняется действие, поэтому, если вы сделали df_two.collect (), он будет кэшировать df и df_two и сериализовать результаты обратно в драйвер только при вызове df_two.collect ().

...