Apache spark 在为数据帧创建一个新列时,如何避免此类型错误,该列将另一列中的值相乘

Apache spark 在为数据帧创建一个新列时,如何避免此类型错误,该列将另一列中的值相乘,apache-spark,pyspark,apache-spark-sql,typeerror,Apache Spark,Pyspark,Apache Spark Sql,Typeerror,我试图在pyspark中添加一列,将比特币值转换为GBP,然后将其添加到我的数据帧中。但是,当我运行代码时,我得到一个类型错误。我试图创建一个与列类型相同的变量以避免出现这种情况,但无法解决此错误 bc_value = DecimalType("4000") df_j2 = df_j2.withColumn("value",df_j2["value"].cast(DecimalType())) df_group = df_j2.grou

我试图在pyspark中添加一列,将比特币值转换为GBP,然后将其添加到我的数据帧中。但是,当我运行代码时,我得到一个类型错误。我试图创建一个与列类型相同的变量以避免出现这种情况,但无法解决此错误

bc_value = DecimalType("4000")
df_j2 = df_j2.withColumn("value",df_j2["value"].cast(DecimalType()))
df_group = df_j2.groupBy("pubkey").sum("value")
df_final = df_group.sort(df_group["sum(value)"].desc()).limit(10)
df_with_pound = df_final.withColumn("pound", col(bc_value*("value")
df_with_pound.show()
以下是屏幕上显示的错误:


代码中存在一些语法错误,包括如何定义十进制列以及如何使用列。您可以尝试以下代码:

from pyspark.sql.types import *
from pyspark.sql.functions import col, lit

bc_value = lit(4000).cast(DecimalType())
df_with_pound = df_final.withColumn("pound", col("value") * bc_value)