如何从 pyspark.sql.function 中提取值?

Posted

技术标签:

【中文标题】如何从 pyspark.sql.function 中提取值?【英文标题】:How to extract value from pyspark.sql.function? 【发布时间】:2016-10-12 17:23:23 【问题描述】:

我正在使用一些 pyspark.sql.functions:

print(ratings.select(mean('rating')).take(1))
print(ratings.select(stddev('rating')).take(1))

输出是:

[Row(avg(rating)=3.581564453029317)]
[Row(stddev_samp(rating,0,0)=1.1171018453732544)]

如何提取值以便将其分配给变量,例如

mean_ratings = ratings.select(mean('rating'))

【问题讨论】:

【参考方案1】:

Take 返回行列表。索引列表以获取第一行,然后拉出您要查找的字段:

mean_ratings = ratings.select(mean('rating')).take(1)[0]['avg(rating)']

【讨论】:

谢谢大卫。我想过做这样的事情,但它“感觉”有点脆弱,尤其是 stddev 版本。 是的,这绝对是 hacky。您还可以使用.asDict() 将行转换为字典。它们使用起来可能会感觉更舒适/更稳定,尤其是在您的行中有多个键的情况下spark.apache.org/docs/2.0.1/api/python/…

以上是关于如何从 pyspark.sql.function 中提取值?的主要内容,如果未能解决你的问题,请参考以下文章

如何从外部从 GitHub 加载 JavaScript 文件? [复制]

如何将数据从回收器适配器发送到片段 |如何从 recyclerview 适配器调用片段函数

如何从 Firebase 获取所有设备令牌?

如何直接从类调用从接口继承的方法?

如何从服务器获取和设置 android 中的 API(从服务器获取 int 值)?如何绑定和实现这个

如何从Mac从android studio中的fabric注销? [复制]