小编Jac*_*cob的帖子

在Spark中重新组合/连接DataFrame行

我有一个看起来像这样的DataFrame:

scala> data.show
+-----+---+---------+
|label| id| features|
+-----+---+---------+
|  1.0|  1|[1.0,2.0]|
|  0.0|  2|[5.0,6.0]|
|  1.0|  1|[3.0,4.0]|
|  0.0|  2|[7.0,8.0]|
+-----+---+---------+
Run Code Online (Sandbox Code Playgroud)

我想基于"id"重新组合功能,以便我可以得到以下内容:

scala> data.show
+---------+---+-----------------+
|    label| id| features        |
+---------+---+-----------------+
|  1.0,1.0|  1|[1.0,2.0,3.0,4.0]|
|  0.0,0.0|  2|[5.0,6.0,7.8,8.0]|
+---------+---+-----------------+
Run Code Online (Sandbox Code Playgroud)

这是我用来生成提到的DataFrame的代码

val rdd = sc.parallelize(List((1.0, 1, Vectors.dense(1.0, 2.0)), (0.0, 2, Vectors.dense(5.0, 6.0)), (1.0, 1, Vectors.dense(3.0, 4.0)), (0.0, 2, Vectors.dense(7.0, 8.0))))
val data = rdd.toDF("label", "id", "features")
Run Code Online (Sandbox Code Playgroud)

我一直在尝试使用RDD和DataFrames做不同的事情.迄今为止最"有希望"的方法是基于"id"过滤

data.filter($"id".equalTo(1))

+-----+---+---------+
|label| id| features|
+-----+---+---------+
|  1.0|  1|[1.0,2.0]|
|  1.0|  1|[3.0,4.0]|
+-----+---+---------+
Run Code Online (Sandbox Code Playgroud)

但我现在有两个瓶颈:

1)如何自动化"id"可能具有的所有不同值的过滤? …

scala dataframe apache-spark apache-spark-sql apache-spark-ml

5
推荐指数
1
解决办法
2340
查看次数