Поскольку у вас еще нет набранных столбцов, я бы начал с RDD, разделил текст на карте, а затем преобразовал бы в Dataframe со схемой.Примерно:
val rdd = sc.textFile({logline path}).map(line=>line.split("\\s+"))
Затем вам нужно превратить ваш RDD (где каждая запись является массивом токенов) в Dataframe.Самый надежный способ - сопоставить массивы с объектами Row, поскольку RDD [Row] - это то, что лежит в основе фрейма данных.
Более простой способ встать и пойти, хотя будет
spark.createDataFrame(rdd).toDF("datetime", "host", "ip", ...)