Я новичок в Apache Spark (и Scala) и хочу применить простой SQL-запрос сразу после чтения CSV-файла и загрузить его в DF без необходимости создания дополнительного фрейма данных, а также временного представления или таблицы.
Это начальный запрос:
SELECT DISTINCT city from cities
WHERE id IN ("10", "20")
AND year IN ("2017", "2018")
Это то, что я пробовал на Scala:
val cities = spark.read.options(Map("header" -> "true", "delimiter" -> ";")).csv("test.csv").select("city").distinct.where(""" id IN ("10", "20") AND year IN ("2017", "2018")"""))
cities.show(20)
Но это не работает.Конкретно, кажется, что проблема возникает из-за того, что он не распознал два других столбца в кадре данных (так как ранее я выбрал только один столбец).Итак, мне пришлось сначала выбрать эти три столбца, а затем сохранить временную таблицу (представление), а затем выбрать нужный столбец в новом кадре данных.Я считаю этот подход слишком длинным и слишком тяжелым.
Можете ли вы помочь мне исправить это, пожалуйста ???Спасибо!