【发布时间】:2018-10-27 10:27:07
【问题描述】:
我想将一个 Spark DataFrame 转换为另一个 DataFrame,具体方式如下:
我有 Spark DataFrame:
+---------+------------+
|protocol | count |
+---------+------------+
| TCP| 8231 |
| ICMP| 7314 |
| UDP| 5523 |
| IGMP| 4423 |
| EGP| 2331 |
+---------+------------+
我想把它变成:
+----------------------------------------------------------+
|Aggregated |
+----------------------------------------------------------+
|{tcp: 8231, icmp: 7314, udp: 5523, igmp: 4423, egp: 2331} |
+----------------------------------------------------------+
聚合列可以是列表或地图,也可以是字符串。这可以通过 DataFrame 函数实现,还是我需要创建自己的 udf 来聚合它?
【问题讨论】:
-
执行此操作时是否要使用数据框中的所有行?由于数量不多,因此收集数据并使用纯 Scala 进行转换可能会更容易。
-
@Shaido 是的,所有行,但给出的示例并不是唯一存在的行。随着时间的推移,行数会不断增加
标签: scala apache-spark dataframe dataset