You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Microsoft Fabric的PySpark Notebook中查看Lakehouse各表大小?

在Microsoft Fabric的PySpark Notebook中查看Lakehouse表大小

方法一:用SQL查询系统视图(推荐,适合新手)

直接通过查询系统视图获取表的存储大小,代码简单直观:

# 执行SQL查询,获取表大小并转换为易读单位
result_df = spark.sql("""
SELECT 
    table_name AS 表名,
    data_length AS 大小(字节),
    ROUND(data_length / (1024 * 1024), 2) AS 大小(MB),
    ROUND(data_length / (1024 * 1024 * 1024), 4) AS 大小(GB)
FROM 
    information_schema.tables
WHERE 
    table_schema = 'default'  -- 若使用自定义schema,替换成你的schema名称
""")

# 在Notebook中展示结果表格
display(result_df)

方法二:通过Spark Catalog遍历表(适合自定义逻辑场景)

如果需要对每个表做额外处理,可以遍历Lakehouse中的所有表,逐个获取大小:

from pyspark.sql.functions import col

# 获取当前Lakehouse下的所有表
tables = spark.catalog.listTables()

table_size_list = []
for table in tables:
    # 执行DESCRIBE EXTENDED获取表的详细信息,提取Size字段(字节数)
    size_bytes = spark.sql(f"DESCRIBE EXTENDED {table.name}") \
        .filter(col("col_name") == "Size") \
        .select("data_type") \
        .first()[0]
    
    # 转换为MB、GB单位
    size_mb = int(size_bytes) / (1024 * 1024)
    size_gb = size_mb / 1024
    
    table_size_list.append((table.name, size_bytes, round(size_mb, 2), round(size_gb, 4)))

# 转换为DataFrame并展示
result_df = spark.createDataFrame(table_size_list, ["表名", "大小(字节)", "大小(MB)", "大小(GB)"])
display(result_df)

注意事项

  • 默认情况下,Lakehouse的表都存储在default schema下,若使用自定义schema,需修改SQL中的table_schema值。
  • 两种方法获取的大小均为表实际存储的字节数,已自动计算压缩后的大小(如果表启用了压缩)。

内容的提问来源于stack exchange,提问作者user18366639

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 23:42:37