Я пытаюсь записать фрейм данных Pandas в разделенные файлы непосредственно на мой Datalake (Gen2), не загружая его в мою локальную систему. Я успешно загрузил один файл с паркетом, используя буфер:
block_blob_service = BlockBlobService(account_name= name, account_key=secret)
buffer = BytesIO()
data.to_parquet(buffer)
block_blob_service.create_blob_from_bytes(container_name="container", blob_name="path/example.parquet", blob=buffer.getvalue())
Я попытался добавить partition_cols
к .to_parquet()
и поместить blob_name
в качестве корневого каталога, например ниже:
block_blob_service = BlockBlobService(account_name= name, account_key=secret)
buffer = BytesIO()
data.to_parquet(buffer, partition_cols=["Year", "Month", "Day"])
block_blob_service.create_blob_from_bytes(container_name="container", blob_name="path/", blob=buffer.getvalue())
но у меня была ошибка:
AttributeError: 'NoneType' object has no attribute '_isfilestore'
Я также пытался использовать pyarrow.parquet.write_to_dataset()
, но похоже, что поддержка AzureDLFileSystem (ADL) в настоящее время не предлагается ...
Как разделенные файлы могут быть записаны непосредственно в Azure Datalake?