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

Microsoft Fabric培训中Apache Spark练习遇NameError:df未定义

NameError: name 'df' is not defined in Microsoft Fabric Spark Training Unit 7

问题描述

我正在学习《Get Started with Microsoft Fabric》培训课程,在「Use Apache Spark in Microsoft Fabric」的第七单元「Work with tables and SQL」环节,运行以下代码:

# Create a new table
df.write.format("delta").saveAsTable("salesorders")

# Get the table description
spark.sql("DESCRIBE EXTENDED salesorders").show(truncate=False)

出现如下错误:

NameError                                 Traceback (most recent call last)
Cell In[29], line 2
1 # Create a new table
----> 2 df.write.format("delta").saveAsTable("salesorders")
4 # Get the table description
5 spark.sql("DESCRIBE EXTENDED salesorders").show(truncate=False)

NameError: name 'df' is not defined

我已完成课程此前所有步骤,未跳过任何环节,无法理解报错原因,怀疑微软是否遗漏步骤。我已尝试谷歌搜索该错误,但未找到针对此问题的解决方案,希望能得到帮助。


解决方案

这个错误的核心是代码中用到的*df变量未被定义*,当前Spark会话中不存在这个DataFrame。结合Fabric Spark培训场景,可按以下方式排查解决:

  • 核对前置步骤的DataFrame创建代码
    回顾第七单元之前的环节,这类培训通常会先读取数据源(比如Lakehouse文件、示例数据集)生成df。比如可能遗漏了类似这样的代码:

    # 示例:读取Lakehouse中的CSV文件
    df = spark.read.csv("Files/sales_data.csv", header=True, inferSchema=True)
    # 或者读取内置示例表
    df = spark.read.table("Samples.SampleSales.SalesOrder")
    

    确认当前Notebook中是否执行过创建df的单元格,检查之前的输出是否显示df已成功初始化。

  • 手动创建测试DataFrame验证
    如果确实找不到课程中生成df的步骤,可临时创建一个简单DataFrame来继续操作:

    # 创建测试用DataFrame
    data = [("SO001", "2024-01-01", 150), ("SO002", "2024-01-02", 300)]
    df = spark.createDataFrame(data, ["OrderID", "OrderDate", "Amount"])
    
    # 执行原代码
    df.write.format("delta").saveAsTable("salesorders")
    spark.sql("DESCRIBE EXTENDED salesorders").show(truncate=False)
    
  • 检查Lakehouse连接状态
    确保Notebook已正确关联课程指定的Lakehouse,数据源读取失败会导致df未被创建。可通过Notebook顶部的Lakehouse选择器确认连接状态。

  • 反馈课程遗漏问题
    若确认所有前置步骤完成后仍无df,大概率是培训步骤说明存在遗漏。可通过课程页面的反馈渠道向微软报告该问题,帮助后续学习者避免同样的困扰。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 08:25:24