Справочная информация. Я использую ноутбук Zeppelin для аналитики. Цель состоит в том, чтобы использовать Pandas Dataframes вместо использования pySpark dataframe. Панды имеют некоторые статистические функции, которые я использовал. записал .py файл для проверки с файлом образца данных всех расчетов и т. д.
Вариант использования: Мои файлы данных (в формате CSV) содержат данные моделирования. Обычно количество столбцов составляет 45 000. В настоящее время я заинтересован в чтении первых 20000 столбцов. Количество строк обычно 200.
print('1 : ' , datetime.now())
sparkDF=spark.read.csv(filePath + '/' + filename,header=True,maxColumns=50000)
print('Built sparkDF with Rows: ' , sparkDF.count() , ' Column Count: ' , len(sparkDF.columns))
print('2 : ' , datetime.now())
sparkDF1 = sparkDF.select(sparkDF.columns[0:20000])
print('Built sparkDF1 with Rows: ' , sparkDF1.count() , ' Column Count: ' , len(sparkDF1.columns))
print('3 : ' , datetime.now())
exposures = sparkDF1.toPandas()
print('Built exposures with Rows: ' , exposures.shape[0] , ' Column Count: ' , exposures.shape[1])
print('4 : ' , datetime.now())
1 : 2019-10-17 16:34:06.725326
Built sparkDF with Rows: 107 Column Count: 40002
2 : 2019-10-17 16:40:04.171931
Built sparkDF1 with Rows: 107 Column Count: 20001
3 : 2019-10-17 16:51:12.465739
Built exposures with Rows: 107 Column Count: 20001
4 : 2019-10-17 16:58:25.65423
Проблемы:
- Панды не могут читать файлы данных, которые находятся на HDFS.
- Чтобы обойти проблему, я использовалСпарк, чтобы прочитать файл, а затем преобразован в панд.
Время для создания кадров данных значительно выше.
Мне нужно обработать 2900 таких файлов. Нужны некоторые рекомендации и альтернативы.