我正在尝试将我的本地数据上传到 Azure Datalake 存储,数据总共约为 10 GB,并分为多个文件夹。我尝试了多种上传文件的方法,每个文件的大小从几KB到56MB不等,都是二进制数据文件。
首先,我尝试使用以下函数使用 python SDK for azure datalake 上传它们:
def upload_file_to_directory_bulk(filesystem_name,directory_name,fname_local,fname_uploaded):尝试:
file_system_client = service_client.get_file_system_client(file_system=filesystem_name)
directory_client = file_system_client.get_directory_client(directory_name)
file_client = directory_client.get_file_client(fname_uploaded)
local_file = open(fname_local,'r',encoding='latin-1')
file_contents = local_file.read()
file_client.upload_data(file_contents, length=len(file_contents),overwrite=True,validate_content=True)
except Exception as e:
print(e)
这个函数的问题是它要么跳过本地文件夹中的文件上传,要么上传的某些文件与本地相同的本地文件大小不同。
我尝试的第二种方法是使用 Azure 存储资源管理器上传整个文件夹,存储资源管理器在上传大约 90 到 100 个文件后会崩溃/失败。有什么方法可以查看日志并查看它停止的原因吗?
第三,我只是使用 Azure 门户手动上传,但这完全是一团糟,因为它在某些文件上也失败了。
谁能指导我如何在 Azure 数据湖上上传批量数据?这三种方法可能会出现什么问题。