Как установить заголовок из одного файла при чтении нескольких CSV-файлов с искрой? - PullRequest
0 голосов
/ 22 сентября 2019

У меня есть мульти .csv файл с тем же форматом.название их как file_#.csv.их заголовок находится в первом файле (file_1.csv).Я читаю этот файл с spark с таким кодом:

spark.read.csv('*.csv', header=True)

Когда я показываю результат, заголовок не является заголовком первого файла, это одна из строк данных.Как можно сказать, чтобы зажечь, что заголовок находится в каком файле?

Ответы [ 2 ]

0 голосов
/ 23 сентября 2019

Если вам известен файл со строкой заголовка, вы можете сгенерировать схему, прочитав схему из файла заголовка, а затем использовать ту же схему для чтения всех других файлов.

df1 = spark.read.csv('a.csv', header=True)
header = spark.read.csv('a.csv', header=False).first()
df2 = spark.read.schema(df1.schema).csv(*.csv, header=False).filter(lambda line: line != header)

Код также удаляет строку заголовка из данных.Вы можете улучшить функцию фильтра, если можно использовать несколько полей, чтобы отличить заголовок от данных.

0 голосов
/ 22 сентября 2019

Невозможно каким-либо стандартным элегантным способом с использованием стандартного API spark.read.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...