Кэширование против Tempview


У меня есть файл parquet, который я читаю по крайней мере 4-5 раз в моей заявке. Мне было интересно, что наиболее эффективно сделать.

Вариант 1. При записи файла parquet считайте его обратно в dataset и Call cache. Я предполагаю, что, выполняя немедленное чтение, я мог бы использовать некоторый существующий кэш hdfs/spark как часть процесса записи.

Вариант 2. В моем приложении, когда мне нужен набор данных в первый раз, после чтения его кэшировать его.

Вариант 3. При написании паркетного файла, после завершение создайте из него временное представление. Во всех последующих случаях используйте представление.

Мне также не очень понятна эффективность чтения из tempview vs parquet dataset.

Наборы данных не помещаются все в память.

1 2

1 ответ:

Вы должны кэшировать dataset (Вариант 2).

  • запись на диск не обеспечит никаких улучшений по сравнению с форматом Spark in-memory
  • временные представления не кэшируются.