首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将两个火花数据帧按排序顺序组合

如何将两个火花数据帧按排序顺序组合
EN

Stack Overflow用户
提问于 2017-03-14 23:53:10
回答 2查看 2.5K关注 0票数 1

我想将两个数据格式ab组合成一个在列上排序的数据格式c

代码语言:javascript
运行
复制
val a = Seq(("a", 1), ("c", 2), ("e", 3)).toDF("char", "num")
val b = Seq(("b", 4), ("d", 5)).toDF("char", "num")
val c = // how do I sort on char column?

以下是我想要的结果:

代码语言:javascript
运行
复制
 a.show()     b.show()      c.show()
+----+---+   +----+---+    +----+---+
|char|num|   |char|num|    |char|num|
+----+---+   +----+---+    +----+---+
|   a|  1|   |   b|  4|    |   a|  1|
|   c|  2|   |   d|  5|    |   b|  4|
|   e|  3|   +----+---+    |   c|  2|
+----+---+                 |   d|  5|
                           |   e|  3|
                           +----+---+
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-15 06:15:45

简单地说,您可以对每个数据文件和sort()使用sort()

代码语言:javascript
运行
复制
val a = Seq(("a", 1), ("c", 2), ("e", 3)).toDF("char", "num").sort($"char")
val b = Seq(("b", 4), ("d", 5)).toDF("char", "num").sort($"char")

val c = a.union(b).sort($"char")
票数 2
EN

Stack Overflow用户

发布于 2018-05-22 09:59:08

如果您想要对多个数据文件进行合并,我们可以尝试这样做。

代码语言:javascript
运行
复制
   val df1 = sc.parallelize(List(
  (50, 2, "arjun"),
  (34, 4, "bob")
)).toDF("age", "children","name")

val df2 = sc.parallelize(List(
  (51, 3, "jane"),
  (35, 5, "bob")
)).toDF("age", "children","name")

val df3 = sc.parallelize(List(
  (50, 2,"arjun"),
  (34, 4,"bob")
)).toDF("age", "children","name")


val result= Seq(df1, df2, df3)
val res_union=result.reduce(_ union _).sort($"age",$"name",$"children")
res_union.show()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42798697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档