У меня проблема с чтением файлов CSV в Pyspark и / или Spark.
Моя цель: прочитать все файлы CSV из определенного каталога в фрейм данных Pandas.
Я наиболее знаком с Python, включая Pandas. Поэтому это мой любимый язык. Файлы довольно маленькие, поэтому не должно быть проблем с их вычислением
По соображениям конфиденциальности я адаптировал некоторые имена файлов и путей - поэтому они имеют "странные" имена.
Мой первый шаг чтобы импортировать Pandas, проверьте содержимое папки с файлами CSV.
%pyhton
import pandas as pd
%sh
hdfs dfs -ls /dbm/ast-gbm/ntsf
В результате:
Найдено 140 элементов
/ dbm / ast-gbm / ntsf / ast1234.csv
список найденных файлов - здесь для краткости опущен
Пока все хорошо!
Далее я пытаюсь прочитать один пример CSV-файла, используя Python. Здесь начинаются проблемы.
df = pd.read_csv("/dbm/ast-gbm/ntsf/ast1234.csv")
Что приводит к проблеме 1:
[... - здесь для краткости опущено]
FileNotFoundError: [ Errno 2] Файл b '/ dbm / ast-gbm / ntsf / ast1234.csv' не существует: b '/ dbm / ast-gbm / ntsf / ast1234.csv'
Так как я Я могу понять список всех файлов с помощью оболочки. Я не понимаю ошибку.
В качестве обходного пути для этого я попытался загрузить файлы CSV в фрейм данных spark и преобразовать его в фрейм данных Pandas. Подобно тому, что предлагает следующее stackoverflow post .
%spark.spark
spark.conf.set("spark.sql.execution.arrow.enabled", "true")
val ast_all = spark.read
.format("csv")
.option("sep", ";")
.option("inferSchema", "true")
.option("header", "true")
.load("/dbm/ast-gbm/ntsf/*.csv")
ast_all.createOrReplaceTempView("ast_all")
df = ast_all.select("*").toPandas()
Что приводит к проблеме 2:
console: 40: ошибка: значение до Pandas не является членом org. apache .spark. sql .DataFrame
df = ast_all.select ("*"). до Pandas ()
В идеале я бы нашел решение для проблемы 1 или проблемы 2. В качестве альтернативы можно также использовать другой способ загрузки файлов 140 csv во фрейм данных pandas.
Есть идеи? Спасибо!