Используйте RDD.collect
для сбора данных (для драйвера) и сопоставления каждой строки для выполнения SQL-запроса.
df.rdd.collect.map(row => sqlContext.sql("..."))
Это может работать или не работать, учитывая размер данных ипамять, доступная на драйвере.
Причина, по которой df.rdd.map( row => sqlContext.sql("..."))
не сработала, заключалась в том, что вы хотели отправить запрос на исполнителей как часть map
, который не будет работать, поскольку долженисполниться на водителя.