【问题标题】:Process to interact with blob storage files from Databricks notebooks与 Databricks 笔记本中的 blob 存储文件交互的过程
【发布时间】:2020-10-13 14:09:26
【问题描述】:

在 Azure Databricks 笔记本中,我正在尝试使用以下命令对 blob 存储中的一些 csv 执行转换:

*import os
    import glob
    import pandas as pd
    os.chdir(r'wasbs://dalefactorystorage.blob.core.windows.net/dale')
    allFiles = glob.glob("*.csv") # match your csvs
    for file in allFiles:
       df = pd.read_csv(file)
       df = df.iloc[4:,] # read from row 4 onwards.
       df.to_csv(file)
       print(f"{file} has removed rows 0-3")*

不幸的是,我收到以下错误:

*FileNotFoundError: [Errno 2] 没有这样的文件或目录:'wasbs://dalefactorystorage.blob.core.windows.net/dale'

我错过了什么吗? (我对此完全陌生)。

干杯,

戴尔

【问题讨论】:

    标签: python azure-blob-storage databricks


    【解决方案1】:

    如果您想使用包 pandas 从 Azure blob 读取 CSV 文件,请处理它并写入 将此 CSV 文件保存到 Azure Databricks 中的 Azure blob,我建议您将 Azure blob 存储挂载为 Databricks 文件系统,然后执行此操作。更多详情请参考here

    例如

    1. 安装 Azure blob
    dbutils.fs.mount(
      source = "wasbs://<container-name>@<storage-account-name>.blob.core.windows.net",
      mount_point = "/mnt/<mount-name>",
      extra_configs = {"fs.azure.account.key.<storage-account-name>.blob.core.windows.net":"<account access key>"})
    

    1. 处理 csv
    import os
    import glob
    import pandas as pd
    
    os.chdir(r'/dbfs/mnt/<mount-name>/<>')
    allFiles = glob.glob("*.csv") # match your csvs
    for file in allFiles:
        print(f" The old content of  file {file} : ")
        df= pd.read_csv(file, header=None)
        print(df)
        df = df.iloc[4:,]
        df.to_csv(file, index=False,header=False)
        print(f" The new content of  file {file} : ")
        df= pd.read_csv(file,header=None)
        print(df)
        break
    

    【讨论】:

    • 如果对你有用,请accept it as an answer。它可能会帮助更多有类似问题的人。
    • 感谢您的回答@Jim Xu。尝试挂载 blob 时,我收到以下错误: shaded.databricks.org.apache.hadoop.fs.azure.AzureException: Container dale in account dalefactorystorage.blob.core.windows.net not found, and we can 39;不要使用匿名凭据创建它,并且在配置中找不到它们的凭据。我什至尝试过使用两个访问键。
    • @dale 您能否检查您使用的存储帐户中的容器名称?根据报错,容器不存在。
    • 非常感谢吉姆,那是赢家
    猜你喜欢
    • 2019-06-28
    • 2021-03-19
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    • 2020-03-24
    • 1970-01-01
    • 2022-07-27
    • 1970-01-01
    相关资源
    最近更新 更多