如何从 Databricks 笔记本下载非数据帧数据?

How do I download non-dataframe data from a Databricks notebook?

提问人:simplycoding 提问时间:11/17/2023 更新时间:11/17/2023 访问量:28

问:

我正在尝试下载数据帧的架构,或者本质上是 的输出,但架构太大,以至于在输出中被截断。 这也是在生产环境中,因此我无法将输出临时存储到 Hive 元存储中。有什么方法可以完全打印或保存 printSchema() 的输出?df.printSchema()

Python 数据砖

评论

0赞 esqew 11/17/2023
从字面上看,你是否正在尝试在 Databricks 中完全/完全打印到笔记本?您是否正在尝试使用笔记本中的代码将其写入文件系统某处的文件?您使用这些信息的最终目标是什么?printSchema()

答:

0赞 SenseiH 11/17/2023 #1

你的问题有点含糊不清,但我想到的是你可以:

  1. 将架构打印存储到 Python 变量

    schema_str = df._jdf.schema().treeString()

  2. 将存储装载到 Databricks 工作区,如在文档中装载

    container_name = ""
    storage_account_name = ""
    conf_key = f"fs.azure.account.key.{storage_account_name}.blob.core.windows.net"
    dbutils.fs.mount(
      source = f"wasbs://{container_name}@{storage_account_name}.blob.core.windows.net",
      mount_point = "/mnt/schema_prints",
      extra_configs = {conf_key:<blob_secret>}
    )
    
  3. 将字符串存储到装载的存储中

with open("/mnt/schema_prints/schema_{id}.txt", "w") as f:
   f.write(schema_str)

我希望这能回答你的问题!