Я реализую метод buildScan API источника данных Spark v1.
override def buildScan(requiredColumns: Array[String], filters: Array[Filter]): RDD[Row] =
Я пытаюсь прочитать файл .csv с заголовками.
val df = sqlContext.sparkSession.read
.schema(_schema_)
.option("header", "true")
.csv(_array_pf_paths_)
и возвращает его как rdd
df.rdd
Схема выглядит следующим образом:
root
|-- A: string (nullable = true)
|-- B: string (nullable = true)
|-- C: string (nullable = true)
|-- D: string (nullable = true)
|-- E: string (nullable = true)
|-- F: string (nullable = true)
Заголовки появляются как в позиции заголовка, так и в первой строке
df.show()
-----------------------
A B C D E F
-----------------------
A B C D E F
a1 b1 c1 d1 e1 f1
a2 b2 c2 d2 e2 f2
a3 b3 c3 d3 e3 f3
a4 b4 c4 d4 e4 f4
a5 b5 c5 d5 e5 f5
------------------------
Как только rdd возвращается, как я
df.select(F) or df.select(E)
всегда возвращается первый столбец.
---
A
---
A
a1
a2
a3
a4
a5
---
но df.show внутри buildScan () возвращает правильный столбец.
Я не могу определить, где именно происходит неправильное отображение столбцов.