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

在AWS EMR Studio中用saveAsTable保存的PySpark DataFrame存储位置查询

Spark saveAsTable生成表的存储路径查询方法

最直接的查询方式

两种方法可以精准拿到当前表的实际存储路径,不会受自定义配置影响:

  • 方式1:运行SQL查询
    直接在Spark SQL中执行如下命令,返回结果里的Location字段就是表的实际存储路径:
    DESCRIBE EXTENDED tableName
    
  • 方式2:通过Spark API获取
    可以直接在代码中调用Catalog API直接拿到路径:
    # Python 示例
    table_path = spark.catalog.getTable("tableName").location
    print(table_path)
    
    // Scala 示例
    val tablePath = spark.catalog.getTable("tableName").location
    println(tablePath)
    

默认路径规则

如果你创建表的时候没有手动指定存储路径,表的存储路径遵循以下规则:

  • 默认存储路径根目录是Spark配置项spark.sql.warehouse.dir的取值,默认值为当前运行目录下的spark-warehouse文件夹
  • 如果表在默认的default数据库下,路径为${spark.sql.warehouse.dir}/表名
  • 如果表在自定义数据库下,路径为${spark.sql.warehouse.dir}/数据库名.db/表名

自定义路径场景

如果调用saveAsTable时主动通过path参数指定了存储路径,示例如下:

df.write.option("path", "/data/custom_table_path").saveAsTable("tableName")

这种情况下创建的是外部表,实际存储路径就是你指定的/data/custom_table_path,不会存到默认的warehouse目录下。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 02:30:05