使用 Azure 存储资源管理器和 python SDK 在 Azure Datalake 存储上上传文件夹失败
Uploading folders on Azure Datalake storage failed using Azure Storage Explorer and python SDK both
我正在尝试将我的本地数据上传到 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 个文件后 crash/fail。有什么方法可以查看日志并了解它停止的原因吗?
第三,我只是使用 Azure 门户手动上传,但那完全是一团糟,因为它在某些文件上也失败了。
谁能指导我如何在 Azure 数据湖上上传批量数据?这3种方法可能会出现什么问题。
使用 Azure 门户上传文件是最简单可靠的选择。假设你有可靠的互联网,我不确定你到底做错了什么。
我已经上传了大约 2.67 GB 的数据,其中包含 691 个文件,而且很容易上传,没有任何问题。许多文件的大小超过 75 MB。检查下面的共享图片。
如果您可以将数据分成 4 组,然后上传每组,您就可以轻松上传文件而不会出现任何问题。
另一种方法
您可以使用AzCopy
上传数据。
AzCopy
is a command-line utility that you can use to copy blobs or
files to or from a storage account.
它可以通过一些简单的 command-line 命令轻松上传大文件。
参考:Get started with AzCopy, Upload files to Azure Blob storage by using AzCopy
我正在尝试将我的本地数据上传到 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 个文件后 crash/fail。有什么方法可以查看日志并了解它停止的原因吗?
第三,我只是使用 Azure 门户手动上传,但那完全是一团糟,因为它在某些文件上也失败了。
谁能指导我如何在 Azure 数据湖上上传批量数据?这3种方法可能会出现什么问题。
使用 Azure 门户上传文件是最简单可靠的选择。假设你有可靠的互联网,我不确定你到底做错了什么。
我已经上传了大约 2.67 GB 的数据,其中包含 691 个文件,而且很容易上传,没有任何问题。许多文件的大小超过 75 MB。检查下面的共享图片。
如果您可以将数据分成 4 组,然后上传每组,您就可以轻松上传文件而不会出现任何问题。
另一种方法
您可以使用AzCopy
上传数据。
AzCopy
is a command-line utility that you can use to copy blobs or files to or from a storage account.
它可以通过一些简单的 command-line 命令轻松上传大文件。
参考:Get started with AzCopy, Upload files to Azure Blob storage by using AzCopy