чтение нескольких файлов csv с использованием pyspark - PullRequest
0 голосов
/ 09 мая 2020

Мне нужно читать несколько файлов CSV в одном go. Теперь эти CSV-файлы могут иметь переменное количество столбцов и в любом порядке. У нас есть требование читать только определенные c столбцы из файлов csv. Как мы это делаем ? Я попытался определить настраиваемую схему, но затем в столбцах получаются разные данные.

Например:

CSV-файл

ID, Имя, Адрес Как выбрать только Id и адресный столбец. Поскольку, если я скажу выбрать (Id, Address), тогда он предоставит мне данные ID и Name в столбце Address. Я хочу выбрать только столбцы ID и Address в соответствии с названиями заголовков при чтении.

Спасибо, Naveed

1 Ответ

2 голосов
/ 09 мая 2020

Вы можете перебирать файлы и создавать окончательный фрейм данных, например:

files = ['path/to/file1.csv', 'path/to/file2.csv', 'path/to/file3.csv', 'path/to/file4.csv']

#define the output dataframe's schema column name and type should be correct
schema = t.StructType([
    t.StructField("a", t.StringType(), True), StructField("c", t.StringType(), True)
])

output_df = spark.createDataFrame([],schema)



for i,file in enumerate(data):
    df = spark.read.csv(file, header=True)
    output_df = output_df.union(df.select('a','c'))

output_df.show()

output_df будет содержать желаемый результат.

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