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

如何在Databricks中使用PySpark选取Excel指定列生成DataFrame

可行实现方案
  • 前置依赖确认:Databricks默认没有集成Excel读取能力,需要先给集群安装对应版本的com.crealytics:spark-excel包,版本要和集群的Spark、Scala版本匹配。

方案1:读取时直接指定列范围(性能最优)

不需要读取全表35列,直接指定要读取的Excel列范围即可,代码示例:

df = spark.read.format("com.crealytics.spark.excel") \
    # 第一行是表头则设为true,无表头设为false
    .option("header", "true") \
    # 指定读取Sales工作表的B到F列
    .option("dataAddress", "'Sales'!B:F") \
    # 替换为你的Excel文件实际存储路径
    .load("dbfs:/FileStore/your_file_path/sales.xlsx")

执行后直接得到仅包含B-F5列的DataFrame。

方案2:全表读取后按列位置筛选

如果你已经完成全表读取得到了全量DataFrame,可以按列索引直接截取需要的列:

# 假设你已经读取全表得到df_full对象
all_columns = df_full.columns
# Excel的B列对应PySpark DataFrame的第2列,列索引从0开始计数,因此B-F对应索引1到5
selected_columns = all_columns[1:6]
df = df_full.select(*selected_columns)

补充说明:如果你的Excel没有表头,读取后默认列名会是_c0、_c1...的格式,直接df_full.select("_c1", "_c2", "_c3", "_c4", "_c5")也可以实现相同效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:45:06