在SPARK中修改groupBy后的列(使用SCALA)

时间:2016-05-21 22:29:12

标签: scala apache-spark dataframe

我是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上使用它。他们是这样做的吗?

0 个答案:

没有答案