У меня есть фрейм данных pandas, и я хочу записать его в виде файла паркета в хранилище файлов Azure.
Пока мне не удалось преобразовать фрейм данных непосредственно в байты, которые я затем могу загрузить в Azure.
Мой текущий обходной путь - сохранить его в виде файла паркета на локальном диске, а затем прочитать его как объект байтов, который я могу загрузить в Azure.
Может кто-нибудь сказать мне, как я могу преобразовать файл данных pandas непосредственно в байтовый объект "parquet file", не записывая его на диск? Операция ввода-вывода действительно сильно замедляет работу, и это похоже на ужасный код ...
# Transform the data_frame into a parquet file on the local drive
data_frame.to_parquet('temp_p.parquet', engine='auto', compression='snappy')
# Read the parquet file as bytes.
with open("temp_p.parquet", mode='rb') as f:
fileContent = f.read()
# Upload the bytes object to Azure
service.create_file_from_bytes(share_name, file_path, file_name, fileContent, index=0, count=len(fileContent))
Я ищу реализовать что-то вроде этого, где transform_functionality возвращает объект байтов:
my_bytes = data_frame.transform_functionality()
service.create_file_from_bytes(share_name, file_path, file_name, my_bytes, index=0, count=len(my_bytes))