Pyspark(1.6.1)SQL.dataframe列到没有Hive

时间:2016-05-08 12:13:58

标签: apache-spark pyspark pyspark-sql

假设我的SQL数据帧df是这样的:

| id | v1 | v2 |
|----+----+----|
|  1 |  0 |  3 |
|  1 |  0 |  3 |
|  1 |  0 |  8 |
|  4 |  1 |  2 |

我希望输出为:

| id |  v1  |  list(v2)  |
|----+----+--------------|
|  1 |  [0] |    [3,3,8] |
|  4 |  [1] |        [2] |

没有Hive的SQL数据框架最简单的方法是什么?

1)显然,通过Hive支持,可以简单地使用collect_set()collect_list()聚合函数。但是这些函数在普通的Spark SqlContext中不起作用。

2)另一种方法是制作UDAF,但考虑到所需的代码量,这对于这样一个简单的聚合来说似乎有些过分。

3)我可以使用df.rdd然后使用groupBy()函数。这是我的最后一招。我实际上将RDD转换为DF以使数据操作更容易,但显然不是......

我错过了其他简单方法吗?

0 个答案:

没有答案