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

Databricks创建含时间戳字段的DataFrame显示null的原因

异常原因

出现null返回值的核心原因是用法错误:

  • F.current_timestamp()返回的是Spark的Column列表达式对象,这类对象的设计用途是在DataFrame转换算子(比如select、withColumn)中作为列计算逻辑使用,不能直接作为字面量数据传入spark.createDataFrame()的data参数。
  • spark.createDataFrame()要求传入的data列表元素是和schema匹配的原生字面量值,传入未绑定执行上下文的Column表达式时,Spark无法将其解析为对应的Timestamp类型值,最终就会返回null结果。
正确实现方式

你可以选择以下任意一种写法实现获取当前时间戳的需求:

  1. 直接通过Spark SQL内置函数生成数据,不需要手动构造data和schema:
%python
from pyspark.sql import functions as F

df = spark.range(1).select(F.current_timestamp().alias("current_timestamp"))
display(df)
  1. 如果要使用createDataFrame接口,传入Python原生的时间类型字面量即可:
%python
from pyspark.sql.types import StructType, StructField, TimestampType
from datetime import datetime

data = [datetime.now()]
schema = StructType([StructField("current_timestamp", TimestampType(), True)])
df = spark.createDataFrame(data, schema)
display(df)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 05:03:18