首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >星火scala dataframe群

星火scala dataframe群
EN

Stack Overflow用户
提问于 2022-07-26 11:29:28
回答 1查看 37关注 0票数 0

我有这个dataframe,我想创建另一个类似于预期的数据。问题是,我想取同一组col_2的col_1 'a‘的值,并将它们放在不同的列中。有办法吗?

代码语言:javascript
运行
复制
#+-----+-----+-----+-
#|col_1| id  |col_2| 
#+-----+-----+-----+
#|    a|    1|    c|
#|    a|    2|    f|
#|    a|    3|    i|
#+-----+-----+-----+

期望的

代码语言:javascript
运行
复制
#+-----+-----+-----+-------+
#|col_1|col_c|col_f| col_i |
#+-----+-----+-----+-------+
#|    a|  c  | f   |  i    | 
 +-----+-----+-----+-------+
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-26 12:38:05

假设您的数据集称为main。我们可以使用以下查询提取作为列的值:

代码语言:javascript
运行
复制
var created = main.groupBy("col_1").pivot("col_2").agg(first(col("col_2")))

这给出了这个输出(这几乎和您喜欢的一样):

代码语言:javascript
运行
复制
+-----+---+---+---+
|col_1|  c|  f|  i|
+-----+---+---+---+
|    a|  c|  f|  i|
+-----+---+---+---+

现在,我们找到不以col_开头的列,并在dataset中重命名它们:

代码语言:javascript
运行
复制
val columns = created.columns.filterNot(c => c.startsWith("col_"))

for (i <- columns) {
  created = created.withColumnRenamed(i, "col_" + i)
}

最后产出:

代码语言:javascript
运行
复制
+-----+-----+-----+-----+
|col_1|col_c|col_f|col_i|
+-----+-----+-----+-----+
|    a|    c|    f|    i|
+-----+-----+-----+-----+
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73122589

复制
相关文章

相似问题

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