当前位置: 首页 > 知识库问答 >
问题:

Azure Databricks - 无法将结果从数据块导出到 blob

令狐珂
2023-03-14

我想将数据从数据砖导出到 Azure Blob。我的数据砖命令从我的 blob 中选择一些 pdf,运行表单识别器并将输出结果导出到我的 blob 中。

这是我的代码:

    %pip install azure.storage.blob
    %pip install azure.ai.formrecognizer
    
  
    from azure.storage.blob import ContainerClient
    
    container_url = "https://mystorageaccount.blob.core.windows.net/pdf-raw"
    container = ContainerClient.from_container_url(container_url)
    
    for blob in container.list_blobs():
    blob_url = container_url + "/" + blob.name
    print(blob_url)


import requests
from azure.ai.formrecognizer import FormRecognizerClient
from azure.core.credentials import AzureKeyCredential

endpoint = "https://myendpoint.cognitiveservices.azure.com/"
key = "mykeynumber"

form_recognizer_client = FormRecognizerClient(endpoint, credential=AzureKeyCredential(key))

   
    import pandas as pd
    
    field_list = ["InvoiceDate","InvoiceID","Items","VendorName"]
    df = pd.DataFrame(columns=field_list)
    
    for blob in container.list_blobs():
        blob_url = container_url + "/" + blob.name
        poller = form_recognizer_client.begin_recognize_invoices_from_url(invoice_url=blob_url)
        invoices = poller.result()
        print("Scanning " + blob.name + "...")
    
        for idx, invoice in enumerate(invoices):
            single_df = pd.DataFrame(columns=field_list)
            
            for field in field_list:
                entry = invoice.fields.get(field)
                
                if entry:
                    single_df[field] = [entry.value]
                    
                single_df['FileName'] = blob.name
                df = df.append(single_df)
                
    df = df.reset_index(drop=True)
    df
    

    account_name = "mystorageaccount"
    account_key = "fs.azure.account.key." + account_name + ".blob.core.windows.net"
    
    try:
        dbutils.fs.mount(
            source = "wasbs://pdf-recognized@mystorageaccount.blob.core.windows.net",
            mount_point = "/mnt/pdf-recognized",
            extra_configs = {account_key: dbutils.secrets.get(scope ="formrec", key="formreckey")} )
        
    except:
        print('Directory already mounted or error')
    
    df.to_csv(r"/dbfs/mnt/pdf-recognized/output.csv", index=False)

代码运行良好,直到最后一行。我收到以下错误消息:<code>目录已装入或出错。FileNotFoundError:[Errno 2]没有这样的文件或目录:'/dbfs/mnt/pdf已识别/output.csv'。

我尝试使用 /dbfs:/而不是 /dbfs/,但我不知道我做错了什么。

如何将我的数据砖结果导出到 blob?

谢谢

共有1个答案

解鸿运
2023-03-14

看起来您正在尝试装载已装载的存储。实际上,装载操作应该只执行一次,而不是动态执行。您有几种选择来正确实现它:

>

  • 在使用数据库残缺不全之前卸载(“/mnt/pdf 识别”)

    检查是否已装载存储

    mounts = [mount for mount in dbutils.fs.mounts() 
          if mount.mountPoint == "/mnt/pdf-recognized"]
    if len(mounts) == 0:
      dbutils.fs.mount(....)
    
    • 您并不真正需要挂载-它具有“坏”属性,工作区中的任何人都可以使用它来拥有用于挂载的权限。将结果写入本地磁盘,然后使用dbutils.fs将文件复制到必要的位置可能更简单。cpwithwasb协议。类似这样:
    df.to_csv(r"/tmp/my-output.csv", index=False)
    spark.conf.set(account_key, dbutils.secrets.get(scope ="formrec", key="formreckey"))
    dbutils.fs.cp("file:///tmp/my-output.csv"), 
       "wasbs://pdf-recognized@mystorageaccount.blob.core.windows.net/output.csv")
    

  •  类似资料:
    • 我有一个独立的H2服务器,正在收集数据。为了进行测试,我希望将数据从服务器中提取到CSV文件中。有什么工具吗?

    • 问题内容: 我试图将使用以下查询找到的结果导出到我的桌面上的CSV中。 这是我第一次使用Elasticsearch和cURL,因此我对如何执行此操作感到困惑。 现在,当我运行此查询时,它将返回戴夫的姓名,姓氏,地址和性别,并且我想在运行查询时将结果放入桌面上的csv中。 我一直在阅读有关如何执行此链接的操作,但是我不确定如何使我的查询执行此操作-(https://docs.python.org/3

    • 我试图从Xampp的phpMyAdmin导出WordPress数据库,但突然出现了这个错误: 致命错误:未捕获类型错误:传递给PhpMyAdmin\导出::getFilenameAndMimetype()的参数5必须是类型字符串,空给定,在第380行的C:\xampp\phpMyAdmin\export.php中调用,并在C:\xampp\phpMyAdmin\库\类\E<-plhd--2/>堆栈

    • 问题内容: 我的要求是存储查询的整个结果 到Excel文件。 问题答案: 实现此目的的典型方法是导出为CSV,然后将CSV加载到Excel。 您可以使用任何MySQL命令行工具通过在语句中包含以下子句来执行此操作: 有关详细选项,请参见此链接。 另外,您可以使用mysqldump,使用– tab选项将转储存储为单独的值格式,请参见此链接。

    • 我想将我的SPARQL查询的结果从Blazegraph导出到一个文件中。但是,它只导出结果的第一页。当我尝试显示所有结果时,我的浏览器崩溃。 我该怎么解决这个? 我正在本地集群上运行BlazeGraph2.1.2。

    • 数据的导入、导出任务一旦成功建立,结果将以邮件的形式发送到创建任务的用户邮箱里。 数据导出 接口 POST https://cloud.minapp.com/userve/v1/table/:table_id/export/ 其中 table_id 是数据表的 ID 请求参数 参数 类型 必填 说明 file_type String 是 导出文件的格式,支持 csv、json 格式 mode St