在pyspark中如何从出生日期计算年龄?

在pyspark中如何从出生日期计算年龄?,pyspark,Pyspark,我正在计算pyspark中出生日期的年龄: def run(first): out = spark.sql(""" SELECT p.birth_date, FROM table1 p LEFT JOIN table2 a USING(id) LEFT JOIN table2 m ON m.id = p.id LEFT JOIN table4 i US

我正在计算pyspark中出生日期的年龄:

def run(first): 

    out = spark.sql("""
        SELECT 
           p.birth_date,
        FROM table1 p
        LEFT JOIN table2 a USING(id)
        LEFT JOIN table2 m ON m.id = p.id
        LEFT JOIN table4 i USING(id))"""
    
    out = out.withColumn('month', F.lit(first))

    out = out.withColumn('age',
             F.when(F.col('birth_date').isNull(), None).otherwise(
               F.floor(F.datediff(
                 F.col('month'), F.col('birth_date'))/365.25)))
我在这一行得到以下错误:

F.col('month'), F.col('birth_date'))/365.25)))
TypeError:-:'DataFrame'和'DataFrame'的操作数类型不受支持。


关于如何解决这个问题,你有什么想法吗?

你能粘贴完整的stacktrace和代码片段吗,我认为这是不可能的wrong@E.ZY. 我已经用剩下的代码更新了我的问题。这能回答你的问题吗?第一个变量是df还是int?但是您的sql可能是错误的,idk是当您粘贴代码时,在