scala - 如何在 spark scala 中获得加入 RDD 中的特定字段 val?
问题描述
人口普查(Id:String,Emptype:String,Salary:Int) 所得税(EMptype:String,Slab:Int)
加入这两个 RDD 后。如何过滤工资大于 50,000 的值以及连接表中的其他字段?(在火花斯卡拉)
解决方案
使用filter
或where
过滤来自 DataFrame 的数据。检查下面的代码。
scala> case class Census(id:String, emptype:String, salary:Int)
defined class Census
scala> case class Incometax(emptype:String,slab:Int)
defined class Incometax
scala> val censusDF = Seq(Census("1","a",10000),Census("2","b",20000),Census("3","c",60000)).toDF
censusDF: org.apache.spark.sql.DataFrame = [id: string, emptype: string ... 1 more field]
scala> val incometaxDF = Seq(Incometax("a",10),Incometax("b",15),Incometax("c",20)).toDF
incometaxDF: org.apache.spark.sql.DataFrame = [emptype: string, slab: int]
scala> censusDF.join(incometaxDF,Seq("emptype"),"left").filter(censusDF("salary") > 50000).show(false)
+-------+---+------+----+
|emptype|id |salary|slab|
+-------+---+------+----+
|c |3 |60000 |20 |
+-------+---+------+----+
scala> censusDF.join(incometaxDF,Seq("emptype"),"left").where(censusDF("salary") > 50000).show(false)
+-------+---+------+----+
|emptype|id |salary|slab|
+-------+---+------+----+
|c |3 |60000 |20 |
+-------+---+------+----+
推荐阅读
- visual-studio-code - 如何将 Chrome 开发人员配置文件与 Visual Studio 代码调试器一起使用
- swiftui - SwiftUI TabView:带有自定义图像的 .tabItem 不显示
- ios - iOS tableview 单元格自动 imageView 高度
- xml - 在 for-each 循环中减去两个值
- angular - Angular 7 - 更改检测不适用于 ngx-build-plus 自定义 webpack 配置
- c - 如何在C程序中创建线程
- java - 如何根据选择的按钮从类中调用方法?
- nativescript - Nativescript 中的 RTL 文本
- javascript - 如何将for循环转换为map函数
- reactjs - 使用样式组件设置 react-router-dom 链接在传递道具时收到警告