我用这个方法收集正的值
def pos_values(df, metrics):
num_pos_values = df.where(df.ttu > 1).count()
df.withColumn("loader_ttu_pos_value", num_pos_values)
df.write.json(metrics)
然而,每当我去测试它的时候,我都会得到TypeError: col should be Column
。我试着铸造它,但这似乎不是一个选项。
我用这个方法收集正的值
def pos_values(df, metrics):
num_pos_values = df.where(df.ttu > 1).count()
df.withColumn("loader_ttu_pos_value", num_pos_values)
df.write.json(metrics)
然而,每当我去测试它的时候,我都会得到TypeError: col should be Column
。我试着铸造它,但这似乎不是一个选项。
1条答案
按热度按时间uyhoqukh1#
出现此错误的原因是
df.withColumn
需要一个Column
对象作为第二个参数,而您给出的num_pos_values
是一个整数。如果你想给一列赋一个字面值(每一行都有相同的值),你可以使用
pyspark.sql.functions
的lit
函数。类似这样的方法是可行的: