pyspark:在python中,`val`是一个变量的计算中,如何使用多个`lit(val)`呢?

pyspark:在python中,`val`是一个变量的计算中,如何使用多个`lit(val)`呢?,pyspark,Pyspark,我尝试在pyspark中使用多个lit和列操作。但我不断地犯这样的错误 D = # came from numpy.int64 via pandas E = # came from numpy.int64 via pandas import pyspark.sql.functions as F output_df.withColumn("c", F.col("A") - F.log(F.lit(D) - F.lit(E))) 但这些是有效的 ***

我尝试在pyspark中使用多个
lit
和列操作。但我不断地犯这样的错误

D = # came from numpy.int64 via pandas
E = # came from numpy.int64 via pandas

import pyspark.sql.functions as F

output_df.withColumn("c", F.col("A") - F.log(F.lit(D) - F.lit(E)))
但这些是有效的

*** AttributeError: 'numpy.int64' object has no attribute '_get_object_id'
试试这个

D=2
output_df.withColumn("c", F.lit(D))
output_df.withColumn("c", F.lit(2))

只要加上这两行就行了。问题是pyspark不知道如何处理
numpy.int64

我认为只需要显式地
int(
值),它就可以工作了
df.withColumn("c", F.col("A") - F.log(F.lit(int(D - E))))

D = int(D)
E = int(E)