Re: «Я хочу знать, является ли кэширование данных в Spark поточно-ориентированным.»
Всякий раз, когда вы конфигурируете ядра исполнителя, вы используете несколько потоков для обработки данных на каждом исполнителе. Это означает, что в обычном сценарии SPARK SQL также DAG обрабатывается с использованием нескольких потоков.
Кэширование не должно оказывать никакого влияния на безопасность потоков. Кроме того, DataFrames также являются неизменными, как RDD, поэтому вы не меняете данные в существующем кадре данных, а создаете новый.
Следовательно, даже после кэширования, когда вы создаете несколько потоков для выполнения разных SQL-запросов на одном и том же кадре данных, каждый поток начнется с этапа кэширования и вычислит новый на основе вашего SQL.