我是SPARK和Scala的新手。所以想知道如何做到这一点。在Python Pandas中,我只是.apply()到分组列,这将工作。不知道如何使用Scala在SPRAK中执行此操作。
我有他们访问过的用户名和网站的数据框。我想在groupBy“user_name”之后将我得到的网站列与一系列网站(放入一个巨大的字符串)结合起来。
val df = Seq(("user1", "facebook.com"), ("user1", "msn.com"), ("user1", "linkedin.com"),("user2","google.com"),("user2","apple.com")).toDF("user_name", "sites")
df.show
df.show
+---------+------------+
|user_name| sites|
+---------+------------+
| user1|facebook.com|
| user1| msn.com|
| user1|linkedin.com|
| user2| google.com|
| user2| apple.com|
+---------+------------+
val grp = df.groupBy("user_name")
现在我想将其应用于分组的“网站”列
var jn = (url: Array[String]) => url.sortWith(_ < _).mkString(":")
我想要的是什么:
+---------+---------------------------------+
|user_name| sites |
+---------+---------------------------------+
| user1|facebook.com:linkedin.com:msn.com|
| user2|apple.com:google.com |
+---------+---------------------------------+
如何在SPARK中将groupedData转换为DataFrame?
如何在groupby之后打印已编辑的数据帧?
我使用udf来更改SPARK数据帧中的列,但不知道如何在groupsData上使用它。他们是这样做的吗?