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
相关产品推荐
相关产品推荐

