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

Azure Databricks Notebook能否清除缓存?列转换后Schema未更新

Azure Databricks Notebook 缓存清除与日期列转换问题解决

核心问题:DataFrame的不可变性

你遇到的问题和缓存无关,本质是Spark DataFrame的不可变性特性:withColumn操作会返回一个全新的DataFrame,不会修改原DataFrame的结构。你看到的Out[167]是新生成DataFrame的信息,但你查看Schema时还是用的原df,所以显示列类型仍为字符串。

正确的日期列转换方式

必须将withColumn返回的新DataFrame赋值给变量(可覆盖原变量,也可使用新变量):

# 覆盖原DataFrame
df = df.withColumn('Date', F.to_date('Date', 'yyyyMMdd'))

# 或创建新的DataFrame
new_df = df.withColumn('Date', F.to_date('Date', 'yyyyMMdd'))

完成赋值后再查看Schema,就能看到Date列已变为date类型。

缓存清除方法(若确实需要)

只有当你之前执行过df.cache()或df.persist()缓存DataFrame时,才需要清除缓存:

  • 清除指定DataFrame的缓存:
    df.unpersist()
    
  • 清除所有缓存的DataFrame:
    spark.catalog.clearCache()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 08:22:50