我正在尝试将文件从Flask (Flask-restplus)应用程序直接上传到azure data lake store (gen1)。
flask应用程序在azure web应用程序上运行。这有没有可能,或者我需要先把它上传到azure web应用服务器,然后再把它移到ADLS上?
用于ADLS的python库(https://github.com/Azure/azure-data-lake-store-python)似乎没有任何用于此的函数。例如,ADLUploader
需要一个本地文件作为源文件。
谢谢!
发布于 2019-05-20 16:16:56
没有直接的方法。
一种方法是像你提到的那样,上传到应用服务器,然后移动到ADLS。
另一种可能的方式是,如果你可以使用convert the file content to bytes
,那么你可以使用ADLS中的一些其他方法,比如open() / write()
,细节如下(只需伪代码,你可以根据需要修改它们):
1.创建客户端:myclient = core.AzureDLFileSystem(adlCreds,store_name=adlsAccountName)
2.获取要上传的文件名,在ADLS:myclient.touch("test/myfile.txt")
中创建一个空文件
3.使用'wb‘模式在ADLS中打开文件:myfile = myclient.open('test/myfile.txt','wb')
4.使用一些方法将您上传的文件的内容转换为字节
5.使用write()和flush()方法将字节内容写入ADLS中的文件:
myfile.write(in_file.read()) #the content should be bytes
myfile.flush(force=True)
https://stackoverflow.com/questions/56212492
复制相似问题