首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ArrayType火花列中唯一元素行的平均值

ArrayType火花列中唯一元素行的平均值
EN

Stack Overflow用户
提问于 2020-06-17 18:41:06
回答 2查看 84关注 0票数 1

我有一个大的(23M行),格式如下:

代码语言:javascript
复制
names, sentiment
["Lily","Kerry","Mona"], 10
["Kerry", "Mona"], 2
["Mona"], 0

我想计算名称列中每个唯一名称的平均情绪,结果是:

代码语言:javascript
复制
name, sentiment
"Lily", 10
"Kerry", 6
"Mona", 4
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-18 02:52:29

只需引爆数组,然后分组

火花当量

代码语言:javascript
复制
import pyspark.sql.functions as f
df1 = df.select(f.explode('names').alias('name'),'sentiment')

df1.groupBy('name').agg(f.avg('sentiment').alias('sentiment')).show()
票数 1
EN

Stack Overflow用户

发布于 2020-06-17 20:00:44

代码语言:javascript
复制
   val avgDF = Seq((Seq("Lily","Kerry","Mona"), 10),
      (Seq("Kerry", "Mona"), 2),
      (Seq("Mona"), 0)
  ).toDF("names", "sentiment")

  val avgDF1 = avgDF.withColumn("name", explode('names))
  val avgResultDF = avgDF1.groupBy("name").agg(avg(col("sentiment")))


  avgResultDF.show(false)
  //      +-----+--------------+
  //      |name |avg(sentiment)|
  //      +-----+--------------+
  //      |Lily |10.0          |
  //      |Kerry|6.0           |
  //      |Mona |4.0           |
  //      +-----+--------------+
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62436130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档