如何从 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 适配器调用片段函数