将Spark DataFrame转换为float

时间:2016-06-27 12:37:10

标签: apache-spark dataframe pyspark

我有一些DataFrame:

data=[('Alice',1),('Bob',2),('Alice',5)]

并计算一个像这样的平均值:

value = dataF.groupBy().mean().collect()

结果:

[Row(avg(age)=2.6666666666666665)]

如何将其转换为浮动?当我使用round函数时:

print round(value,2)

我收到TypeError: a float is required错误。

3 个答案:

答案 0 :(得分:2)

value = dataF.groupBy()。mean()。head()[0]

答案 1 :(得分:1)

对于简单转换,可以执行类似

的操作
val test_df = dataDF.withColumn("xx", $"yy".cast("float"))

如果需要就地转换,也可以使用UDF。希望这会有所帮助。

答案 2 :(得分:0)

value =(round(float(dataF.groupBy()。avg('age')。first()[0]),2))