将数据框行(sum(fld))转换为离散值。

问题描述 投票:0回答:1

我有这个。

df = sqlContext.sql(qry)
df2 = df.withColumn("ext", df.lvl * df.cnt)
ttl = df2.agg(F.sum("ext")).collect()

返回这个。

[Row(sum(ext)=1285430)]

如何将其转化为一个谨慎的值呢?1285430 而不是一个列表Row(sum())?

我研究了很多东西,尝试了很多东西,我完全被风格化了。

dataframe databricks
1个回答
0
投票

访问第一行,然后把第一个元素作为int获取。

df2.agg(F.sum("ext")).collect()(0).getInt(0)

看一下文档。Spark ScalaDoc.


0
投票

不需要收集。

n = ...your transformation logic and agg... .first().getInt(0)
© www.soinside.com 2019 - 2024. All rights reserved.