Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在Scala中连接两个数据帧,并通过索引从数据帧中选择一些列?

如何在Scala中连接两个数据帧,并通过索引从数据帧中选择一些列?
EN

Stack Overflow用户
提问于 2017-05-09 00:31:40
回答 2查看 4.1K关注 0票数 1

我必须连接两个数据帧,这非常类似于这里给出的任务Joining two DataFrames in Spark SQL and selecting columns of only one

但是,我只想从df2中选择第二列。在我的任务中,我将在一个数据帧列表的reduce函数中使用两个数据帧的连接函数。在这个数据帧列表中,列名将不同。但是,在每种情况下,我都希望保留df2的第二列。

我在任何地方都找不到如何根据数据帧的编号索引选择数据帧的列。如有任何帮助,我们不胜感激!

编辑:

回答

我想出了解决方案。以下是一种方法:

代码语言:javascript
运行
AI代码解释
复制
def joinDFs(df1: DataFrame, df2: DataFrame): DataFrame = {
  val df2cols = df2.columns
  val desiredDf2Col = df2cols(1)  // the second column
  val df3 = df1.as("df1").join(df2.as("df2"), $"df1.time" === $"df2.time")
      .select($"df1.*",$"df2.$desiredDf2Col")
  df3
}

然后,我可以在数据帧列表上的reduce操作中应用此函数。

代码语言:javascript
运行
AI代码解释
复制
var listOfDFs: List[DataFrame] = List()
// Populate listOfDFs as you want here
val joinedDF = listOfDFs.reduceLeft((x, y) => {joinDFs(x, y)})
EN

回答 2

Stack Overflow用户

发布于 2017-05-09 01:36:07

要选择数据帧中的第二列,您可以简单地执行以下操作:

代码语言:javascript
运行
AI代码解释
复制
val df3 = df2.select(df2.columns(1))

这将首先找到第二个列名,然后选择它。

票数 1
EN

Stack Overflow用户

发布于 2017-05-09 02:01:55

如果要在reduce函数中定义的joinselect方法类似于Joining two DataFrames in Spark SQL and selecting columns of only one

然后,您应该执行以下操作:

代码语言:javascript
运行
AI代码解释
复制
import org.apache.spark.sql.functions._
d1.as("d1").join(d2.as("d2"), $"d1.id" === $"d2.id").select(Seq(1) map d2.columns map col: _*)

您必须记住,第二列的名称(即 Seq(1) )不应与任何数据帧列名相同。

您也可以选择多个列,但请记住上面的粗体注释

代码语言:javascript
运行
AI代码解释
复制
import org.apache.spark.sql.functions._
d1.as("d1").join(d2.as("d2"), $"d1.id" === $"d2.id").select(Seq(1, 2) map d2.columns map col: _*)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43859232

复制
相关文章
php计算两个日期之间的间隔,避免导出大量数据
在做系统业务功能的时候,有的时候业务人员会进行超大范围地导出excel表格,导致内存、CPU占用飙升。
宣言言言
2019/12/17
2.5K0
css内容 元素 元素空间的练习
<!DOCTYPE html> <html> <head> <title></title> <style type="text/css"> *{padding: 0px;margin: 0px;} .box1 { width: 50px; height: 50px; padding: 25px; background-color: red; } /*这个为元素的宽高都为150px。内容的宽高为100px*/ .box2 { width: 96px
贵哥的编程之路
2020/10/28
1.2K0
LeetCode 2121. 相同元素的间隔之和(前缀和)
arr 中两个元素的 间隔 定义为它们下标之间的 绝对差 。更正式地,arr[i] 和 arr[j] 之间的间隔是 |i - j| 。
Michael阿明
2022/01/07
5990
如何获取数组a和数组b 之间的共元素?
# 4.如何获取数组a = np.array([1,2,3,2,3,4,3,4,5,6])和数组b = np.array([7,2,10,2,7,4,9,4,9,8])之间的共元素? # 法1 a
瑞新
2020/07/07
3.6K0
LeetCode 1360. 日期之间隔几天(闰年判断)
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/number-of-days-between-two-dates 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
Michael阿明
2020/07/13
8910
如何快速解决或避免EDI系统磁盘空间不足?
随着企业业务数据量的增大,现有服务器环境可能无法提供足够的磁盘空间存放数据处理的日志和文件,磁盘空间不足是影响EDI环境正常运行的一大原因,会导致数据无法正常处理,日志信息无法写入,影响业务正常进行。本文将为大家介绍出现磁盘空间不足,导致EDI系统运行异常的紧急处理方法。
知行软件EDI
2022/09/06
1.4K0
如何快速解决或避免EDI系统磁盘空间不足?
【Kotlin 协程】Flow 流组合 ( Flow#zip 组合多个流 | 新组合流的元素收集间隔与被组合流元素发射间隔的联系 )
假如两个 Flow 流的 元素发射 不同步 , 则 先发射的元素 , 需要等待对应顺序的 后发射的元素到来 ;
韩曙亮
2023/03/30
1.1K0
【Kotlin 协程】Flow 流组合 ( Flow#zip 组合多个流 | 新组合流的元素收集间隔与被组合流元素发射间隔的联系 )
Java&nbsp;计算计算两个日期之间的间隔…
import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner;
明明如月学长
2021/08/27
2.2K0
清除inline-block元素之间的空白
一个元素如果被设置为display:inline-block,那么这个元素将表现为行内块的性质。被设为行内块的元素 对内(子元素)表现为块级框,具体为可以设置高度宽度,可以设置垂直margin和padding等;对兄弟元素 则表现为行内框,具体表现为相邻行内块可在同一行显示,而且有着行内元素的特点,就是框与框之间可以出现 空白,造成空白的方式可以使“空白符,制表符,换行符”。 可以通过简单的方式消除行内块之间的空白,就是在行内块的包含块上设置属性: .wrapper{font-size: 0;*word-s
欲休
2018/03/15
8940
Java&nbsp;计算计算两个日期之间的间隔…
import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner;
明明如月学长
2021/08/27
1.8K0
【LeetCode第 177 场周赛】5169. 日期之间隔几天
输入:date1 = "2019-06-29", date2 = "2019-06-30" 输出:1 示例 2:
韩旭051
2020/06/23
8970
探秘Oracle表空间、用户、表之间的关系
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/details/49282199
DannyHoo
2018/09/13
2.8K0
探秘Oracle表空间、用户、表之间的关系
如何避免FOUC
FOUC即无样式内容闪烁也可以称为文档样式短暂失效,主要就是指HTML已加载而样式表并未加载,此后样式表再加载而产生的闪烁现象。
WindRunnerMax
2020/08/27
1.1K0
Python类的空间问题以及类之间的关系
总结:对象的属性不仅可以在init里面添加,还可以在类的其他方法或者类的外面添加。
星陨1357
2023/03/14
8000
如何避免「脸红」
我是一个特别容易脸红的,对于女生来说脸红其实可以当腮红,看起来还超可爱,但是我是一个大男人呢,估计我是一个人见人怕,佛听了都哆嗦,非常在意别人的意见和看法,以及追求点小完美的处女座吧。
叉叉敌
2019/02/23
1.3K0
如何避免「脸红」
PHP 命名空间元素访问及use的使用
使用 as 时空间元素名称则被新名称取代, 原名称不能用了, 故不能称之为起别名, 应该是起新名
很酷的站长
2023/01/05
1.3K0
PHP 命名空间元素访问及use的使用
Redis内存空间占用及避免数据丢失的方法
在现代的互联网应用中,Redis作为一种高性能的内存数据库,被广泛应用于缓存、会话管理和消息队列等场景。然而,Redis的内存资源是有限的,过多的内存占用可能会导致数据丢失。因此,对于项目中使用Redis的架构师来说,合理预估Redis内存空间的占用,并采取相应的措施来避免内存占用过多,是非常重要的。
疯狂的KK
2023/08/22
5030
Redis内存空间占用及避免数据丢失的方法
点击加载更多

相似问题

如何选择间隔之间的元素

11

内容:在第一项和最后一项之间有相等空间的间隔。

510

避免减号和金额之间的行间隔。

21

元素之间的空间

12

删除html元素之间的自动间隔/行间隔?

33
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档