Прежде всего, граф будет работать на dataframe тоже. Любое действие, которое охватывает весь блок данных, будет достаточным (счетчик перебирает все записи и, следовательно, материализует весь блок данных).
Во-вторых, важно отметить, что линия не будет уменьшена путем кэширования. Вся линия будет анализироваться и оптимизироваться как часть генерации кода. Единственное отличие состоит в том, что многие шаги, вероятно, будут пропущены, поскольку будут использоваться данные, уже полученные из кеша (BTW, это не всегда так, бывают случаи, когда оптимизатор может решить пересчитать на основе его внутренних эвристик).
Существует два способа сократить линию на кадре данных.
- Запишите на диск и перезагрузите (который разрезает линию к части «чтения»).
Используйте контрольную точку (которая за кулисами также сохраняет и загружает).
Контрольная точка имеет то преимущество, что вы можете писать на локальный диск вместо распределенного (что займет меньше времени), однако это делается с помощью RDD (даже новый интерфейс для контрольной точки контрольной точки непосредственно использует контрольную точку RDD за кадром) и, следовательно, больше размера данных, что может привести к тому, что на практике он будет более медленным.
'count' работает как' 'RDD' и DF' (поиск' count' здесь: http://spark.apache.org/docs/latest/sql-programming-guide.html) – Yaron