Я загрузил блокнот в рабочую область Databricks. Дерево рабочей области выглядит следующим образом:
Я хочу прочитать CSV в папке данных, используя pandas. Я пытаюсь сделать это с помощью следующего кода в блокноте FastFashionML:
import pandas as pd
items = pd.read_csv('data/fastFasionItemsDim.csv', sep='|')
Я получаю следующее:
FileNotFoundError: [Errno 2] No such file or directory: 'data/fastFasionItemsDim.csv'
Вот как выглядит папка data:
Хотя расширение не показано в дереве, файл называется fastFasionItemsDim.csv, поскольку я загрузил его в виде zip-файла. Я также пытался удалить расширение из пути к файлу, но все равно не могу прочитать файл.
Как мне найти и правильно загрузить файл CSV с пандами в файловой системе Databricks?
предполагая, что ваш скрипт Python — FastFashionML.py
, похоже, что скрипт не запускается из корня вашего рабочего пространства (который содержит папку data
, а также FastFashionML.py
). Можете ли вы уточнить, как вы запускаете свой скрипт?
Вы пробовали закрыть и перезагрузить ноутбук? Иногда он не освежает окружающую среду вокруг себя.
вы можете добавить к своему пути префикс /
, чтобы перейти в корневой каталог, например:
import pandas as pd
items = pd.read_csv('/data/fastFasionItemsDim.csv', sep='|')
Кажется, невозможно загрузить файлы CSV с помощью файловой системы Databricks.
Единственный способ — загрузить их через графический интерфейс, а затем выполнить этот код PySpark и SQL:
def load_csv_to_spark_df(path, temp_table_name):
# File type
file_type = "csv"
# CSV options
infer_schema = "true"
first_row_is_header = "true"
delimiter = "|"
# Load CSV file into DataFrame
spark_df = spark.read.format(file_type) \
.option("inferSchema", infer_schema) \
.option("header", first_row_is_header) \
.option("sep", delimiter) \
.load(path)
# Display DataFrame
display(spark_df)
# Convert DataFrame to Pandas
items = spark_df.toPandas()
return spark_df, items
После загрузки таблицы в pandas, если вы также хотите, чтобы она была доступна в графическом интерфейсе, вам следует создать представление и выполнить SQL-запрос:
file_location = "/FileStore/tables/<FILENAME>"
temp_table_name = "<VIEW_NAME>"
spark_df_items, items = load_csv_to_spark_df(file_location, temp_table_name)
spark_df_items.createOrReplaceTempView(temp_table_name)
Затем SQL-запрос:
%sql
select * from `<VIEW_NAME>`
После этой процедуры у вас будет таблица фрейма данных Pandas, и вы также сможете просмотреть таблицу графически в разделе «Каталог».
Это блокнот, я запускаю его, просто нажимая кнопку воспроизведения на интерфейсе блоков данных.