Пример с плагиномasticsearch4hadoop:
SELECT root.toto.toto FROM elasticsearch_table
Spark вызывает buildScan (https://github.com/elastic/elasticsearch-hadoop/blob/master/spark/sql-20/src/main/scala/org/elasticsearch/spark/sql/DefaultSource.scala#L233) только с root вместо root.toto.toto (поэтому драйвер может выбрать только нужное поле).
buildScan
root
root.toto.toto
Эта проблема, похоже, связана с самой Spark, возможно, существует та же проблема с большим количеством формата источника данных (Parquet, ORC ...).
---- издание ----
Я только что видел, как они исправляют это для формата файла Parquet: https://github.com/apache/spark/pull/21320