将文件从 Azure 文件加载到 Azure Databricks

2023-12-02

寻找一种使用 Azure 文件 SDK 将文件上传到我的 azure databricks blob 存储的方法

我使用这个函数尝试了很多东西page

但没有任何效果。我不明白为什么

example:

file_service = FileService(account_name='MYSECRETNAME', account_key='mySECRETkey')

generator = file_service.list_directories_and_files('MYSECRETNAME/test') #listing file in folder /test, working well
for file_or_dir in generator:
    print(file_or_dir.name)

file_service.get_file_to_path('MYSECRETNAME','test/tables/input/referentials/','test.xlsx','/dbfs/FileStore/test6.xlsx')

其中 test.xlsx = 我的 azure 文件中的文件名

/dbfs/FileStore/test6.xlsx => 在我的 dbfs 系统中上传文件的路径

我有错误消息:

异常=指定的资源名称包含无效字符

尝试更改名称但似乎不起作用

编辑:我什至不确定该功能是否正在执行我想要的操作。从天蓝色文件加载文件的最佳方法是什么?


根据我的经验,我认为从 Azure 文件加载文件的最佳方法是直接通过带有 sas 令牌的 url 读取文件。

例如,如下图所示,它是一个名为test.xlsx in my test文件共享,我使用 Azure 存储资源管理器查看它,然后使用 sas 令牌生成其 url。

图 1. 右键单击​​该文件,然后单击Get Shared Access Signature...

enter image description here

图 2. 必须选择该选项Read直接读取文件内容的权限。

enter image description here

图 3. 使用 sas 令牌复制 url

enter image description here

这是我的示例代码,您可以使用 Azure Databricks 中文件的 sas 令牌 url 来运行它。

import pandas as pd

url_sas_token = 'https://<my account name>.file.core.windows.net/test/test.xlsx?st=2020-01-27T10%3A16%3A12Z&se=2020-01-28T10%3A16%3A12Z&sp=rl&sv=2018-03-28&sr=f&sig=XXXXXXXXXXXXXXXXX'
# Directly read the file content from its url with sas token to get a pandas dataframe
pdf = pd.read_excel(url_sas_token )
# Then, to convert the pandas dataframe to a PySpark dataframe in Azure Databricks
df = spark.createDataFrame(pdf)

或者,要使用 Azure 文件存储 SDK 为您的文件生成带有 sas 令牌的 url 或获取文件的字节以供读取,请参阅官方文档Develop for Azure Files with Python和我的示例代码如下。

# Create a client of Azure File Service as same as yours
from azure.storage.file import FileService

account_name = '<your account name>'
account_key = '<your account key>'
share_name = 'test'
directory_name = None
file_name = 'test.xlsx'

file_service = FileService(account_name=account_name, account_key=account_key)

生成文件的 sas 令牌 url

from azure.storage.file import FilePermissions
from datetime import datetime, timedelta
sas_token = file_service.generate_file_shared_access_signature(share_name, directory_name, file_name, permission=FilePermissions.READ, expiry=datetime.utcnow() + timedelta(hours=1))

url_sas_token = f"https://{account_name}.file.core.windows.net/{share_name}/{file_name}?{sas_token}"
import pandas as pd
pdf = pd.read_excel(url_sas_token)
df = spark.createDataFrame(pdf)

或者使用get_file_to_stream读取文件内容的函数

from io import BytesIO
import pandas as pd

stream = BytesIO()
file_service.get_file_to_stream(share_name, directory_name, file_name, stream)
pdf = pd.read_excel(stream)
df = spark.createDataFrame(pdf)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将文件从 Azure 文件加载到 Azure Databricks 的相关文章

  • 使用 python 进行串行数据记录

    Intro 我需要编写一个小程序来实时读取串行数据并将其写入文本文件 我在读取数据方面取得了一些进展 但尚未成功地将这些信息存储在新文件中 这是我的代码 from future import print function import se
  • pydev 调试器:严重警告:此版本的 python 似乎编译不正确(内部生成的文件名不是绝对的)[重复]

    这个问题在这里已经有答案了 通过运行 from sklearn datasets import fetch california housing import pandas as pd pd set option precision 4 m
  • Python逻辑运算符优先级[重复]

    这个问题在这里已经有答案了 哪个运算符优先4 gt 5 or 3 lt 4 and 9 gt 8 这会被评估为真还是假 我知道该声明3 gt 4 or 2 lt 3 and 9 gt 10 显然应该评估为 false 但我不太确定 pyth
  • 将数据帧行转换为字典

    我有像下面的示例数据这样的数据帧 我正在尝试将数据帧中的一行转换为类似于下面所需输出的字典 但是当我使用 to dict 时 我得到了索引和列值 有谁知道如何将行转换为像所需输出那样的字典 任何提示都非常感激 Sample data pri
  • Argparse nargs="+" 正在吃位置参数

    这是我的解析器配置的一小部分 parser add argument infile help The file to be imported type argparse FileType r default sys stdin parser
  • Pandas 中允许重复列

    我将一个大的 CSV 包含股票财务数据 文件分割成更小的块 CSV 文件的格式不同 像 Excel 数据透视表之类的东西 第一列的前几行包含一些标题 公司名称 ID 等在以下列中重复 因为一家公司有多个属性 而不是一家公司只有一栏 在前几行
  • 如何在 Microsoft Azure Function 中创建类?

    可能这是一个错误的问题 但我需要创建一个模型 类并在天蓝色函数中访问相同的模型 类 我无法找到如何创建课程 类可以内联创建 因为它通常会在常规 C 项目中定义类 这是一个例子 https github com Azure azure web
  • 为什么Python的curses中escape键有延迟?

    In the Python curses module I have observed that there is a roughly 1 second delay between pressing the esc key and getc
  • Azure VM 上的 MongoDb 连接超时

    将我的 Azure Web 应用程序连接到 Azure VM 上托管的 MongoDb 时 我遇到一些超时问题 2015 12 19T15 57 47 330 0100 I NETWORK Socket recv errno 10060 A
  • Python urllib.request.urlopen:AttributeError:'bytes'对象没有属性'data'

    我正在使用 Python 3 并尝试连接到dstk 我收到错误urllib包裹 我对SO进行了很多研究 但找不到与这个问题类似的东西 api url self api base street2coordinates api body jso
  • Numpy 过滤器平滑零区域

    我有一个 0 及更大整数的 2D numpy 数组 其中值代表区域标签 例如 array 9 9 9 0 0 0 0 1 1 1 9 9 9 9 0 7 1 1 1 1 9 9 9 9 0 2 2 1 1 1 9 9 9 8 0 2 2 1
  • 将 JSON 对象传递给带有请求的 url

    所以 我想利用 Kenneth 的优秀请求模块 https github com kennethreitz requests 在尝试使用时偶然发现了这个问题自由库API http wiki freebase com wiki API 基本上
  • 在 pytube3 中获取 youtube 视频的标题?

    我正在尝试构建一个应用程序来使用 python 下载 YouTube 视频pytube3 但我无法检索视频的标题 这是我的代码 from pytube import YouTube yt YouTube link print yt titl
  • Pandas 根据 diff 列形成簇

    我正在尝试使用 Pandas 根据表示时间 以秒为单位 的列中的差异来消除数据框中的一些接近重复项 例如 import pandas as pd numpy as np df pd DataFrame 1200 1201 1233 1555
  • 在 Pandas 中使用正则表达式的多种模式

    我是Python编程的初学者 我正在探索正则表达式 我正在尝试从 描述 列中提取一个单词 数据库名称 我无法给出多个正则表达式模式 请参阅下面的描述和代码 描述 Summary AD1 Low free DATA space in data
  • 使用 Firefox 绕过弹出窗口下载文件:Selenium Python

    我正在使用 selenium 和 python 来从中下载某些文件web page http www oceanenergyireland com testfacility corkharbour observations 我之前一直使用设
  • mac osx 10.8 上的初学者 python

    我正在学习编程 并且一直在使用 Ruby 和 ROR 但我觉得我更喜欢 Python 语言来学习编程 虽然我看到了 Ruby 和 Rails 的优点 但我觉得我需要一种更容易学习编程概念的语言 因此是 Python 但是 我似乎找不到适用于
  • 无法在前端使用 JavaScript Fetch API 将文件上传到 FastAPI 后端

    我正在尝试弄清楚如何将图像发送到我的 API 并验证生成的token那是在header的请求 到目前为止 这就是我所处的位置 app post endreProfilbilde async def endreProfilbilde requ
  • 限制 django 应用程序模型中的单个记录?

    我想使用模型来保存 django 应用程序的系统设置 因此 我想限制该模型 使其只能有一条记录 极限怎么办 尝试这个 class MyModel models Model onefield models CharField The fiel
  • Scrapy Spider不存储状态(持久状态)

    您好 有一个基本的蜘蛛 可以运行以获取给定域上的所有链接 我想确保它保持其状态 以便它可以从离开的位置恢复 我已按照给定的网址进行操作http doc scrapy org en latest topics jobs html http d

随机推荐

  • 使用 CSS 添加虚线间隔/填充

    我正在一家餐厅网站上工作 该设计要求在菜单项和价格之间使用典型的虚线填充 我已经在网上搜索并弄乱了它一个小时左右 但似乎找不到任何仅使用 CSS 来做到这一点的好方法 我在这里发现了一些其他解决方案 如果您有纯色背景 它们效果很好 但是在这
  • 如何在 ChartJS 中排序、插入和更新完整数据集?

    我在使用 ChartJS 时遇到一些问题 简单的更新方法无法解决 我想知道是否有一个选择 轻松地对数据集进行排序 在两点之间插入一些数据 重新加载整个图表而不用替换画布 全新的图表 没有内置选项 但使用以下命令编写自己的选项非常容易addD
  • catch 和finally 中return 语句的行为

    请参阅以下代码并解释输出行为 public class MyFinalTest public int doMethod try throw new Exception catch Exception ex return 5 finally
  • Python:为列表或对象中的变量赋值[重复]

    这个问题在这里已经有答案了 我想做以下事情 a 1 b 2 c 3 tom a b c for i in tom i 6 期望的结果是a 6 实际结果是a 1 我猜想如果没有某种执行程序就没有办法做到这一点 正确的 最初我误解了你的问题 我
  • Codeigniter:更新图像和显示

    我遇到了更新图像的问题 我已经创建了图像上传 效果很好 但我也希望对其进行更新 当我添加需要的图像时 它会正确更新 但如果我不想更改图像并保持原样 则无法检索我当前的图像 请帮我 控制器 public function insert dat
  • 元数据和微观数据有什么区别?

    我对这两个术语感到很困惑 我知道元数据的基本含义是 关于数据的数据 微观数据是指网页现在更容易被搜索引擎访问 但这两个术语的区别是什么 微观数据是特定技术的名称 metadata是一个通用术语 正如您所解释的 元数据是关于数据的数据 我们通
  • 具有重复项的类的多标签编码

    如何对具有重复项的列表列进行 n hot 编码 就像是MultiLabelBinarizer来自 sklearn 它计算重复类的实例数量而不是二值化 输入示例 x pd Series a b a b c c c 预期输出 a b c 0 2
  • 序列化数组时删除 根元素

    这是一个代码示例 public class Person public string FirstName get set public string LastName get set static void Main Person pers
  • 字节数组到 UIImage Objective-C

    我有一个字节数组 unsigned char outputData unsigned char malloc sizeof unsigned char w h 4 outputData y h 4 x 4 0 all alpha value
  • 我可以直接将地址分配给指针吗?如果是这样,该怎么做?

    int main int a 2 address is 0x7ffeefbff58c int b a std cout lt lt address of a lt lt b lt lt std endl return 0 我的 int 变量
  • Firebase身份验证单元测试错误没有Firebase应用程序

    我正在尝试测试我的firebase auth方法 身份验证方法有登录 注销 注册等 这是我想要执行单元测试的方法 我收到错误No Firebase App DEFAULT has been created call Firebase ini
  • 如何创建自定义消息框?

    我正在尝试用我的控件制作一个自定义消息框 public static partial class Msg Form public static void show string content string description 实际上我
  • 如何隐藏不适合网格的项目?

    我有一个水平放置 6 个项目的网格 每个项目的最小宽度为 200 像素 如果没有足够的空间容纳整个项目 则应隐藏该项目 现在 当没有足够的空间容纳整个项目时 它会部分显示 如何隐藏不完全适合网格的项目 而不是部分显示 进一步解释 每个网格项
  • C/C++ - 可执行路径

    我想获取当前可执行文件的文件路径 末尾不包含可执行文件名称 我在用着 char path 1024 uint32 t size sizeof path if NSGetExecutablePath path size 0 printf ex
  • JWPlayer - 自定义列表栏以添加“下载”链接

    我们需要允许用户下载他们当前在 JWPlayer 中观看的任何视频 最合乎逻辑的方法是在播放列表 列表栏中添加 下载 链接 列表栏可以定制到这种程度吗 这是一个快速演示 我更新了它 以便它可以在每个播放列表项目的基础上工作 并且我对图像进行
  • Spring mvc @RequestMapping 在类级别和方法级别 404 状态

    我知道这里有很多帖子都有同样的问题 但它们似乎都没有帮助我 所以这可能是重复的 我使用 Maven 创建一个 spring mvc 应用程序 我只有一个控制器和一种方法 当我仅将请求映射注释放在类级别时 应用程序工作正常 但是当我将其放在类
  • SQL Server 2008 - 多个级联 FK - 我需要触发器吗?

    我之间有 1 关系User and Post 一个用户有多个帖子 Post有一个名为 UserId 的 FK 它映射到上的 UserId 字段User table 我尝试将此 FK 设置为 Cascade UPDATE DELETE 但出现
  • 检查 PHP 是否在您的服务器上启用了 PATH_INFO?

    在 PHP 中 是否有一种跨平台 跨 Web 服务器的方法来确定您正在运行的服务器上是否启用了 PATH INFO 看起来 SERVER PATH INFO 仅在脚本后面有额外的路径段时才会填充 因此例如 如果请求是针对 index php
  • ggplot r 中热图标签中的上标

    早上好 我正在 ggplot 中制作特定表型之间相关性的热图 我想用 R 2 来标记每个图块以进行关联 我有一个相关矩阵 max all 如下所示 phenolist2 pheno1 pheno2 pheno3 pheno4 pheno5
  • 将文件从 Azure 文件加载到 Azure Databricks

    寻找一种使用 Azure 文件 SDK 将文件上传到我的 azure databricks blob 存储的方法 我使用这个函数尝试了很多东西page 但没有任何效果 我不明白为什么 example file service FileSer