栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

spark Sql选择列和选择行的函数

spark Sql选择列和选择行的函数

在spark sql中,行和列是非常重要的,但是sql中的一些函数是非常容易混淆的,比如filter、select、where函数,特此写一篇博客来记录这些区别。

select 函数是从dataframe中取得列,有以下几种格式:

select(cols : Column*) : Dataframe
select(col : String, cols : String*) : Dataframe
select[U1](c1 : TypedColumn[T, U1]) : Dataset[U1]
select[U1, U2](c1 : TypedColumn[T, U1], c2 : TypedColumn[T, U2]) : Dataset[scala.Tuple2[U1, U2]]
// And more select() that takes up to 5 TypesColumns U1,U2,U3,U4,U5

例子

df.select("firstname","lastname").show()

//Using Dataframe object name
df.select(df("firstname"),df("lastname")).show()

//Using col function, use alias() to get alias name
import org.apache.spark.sql.functions.col
df.select(col("firstname").alias("fname"),col("lastname")).show()

输出就是

+---------+--------+
|firstname|lastname|
+---------+--------+
|    James|   Smith|
|  Michael|    Rose|
|   Robert|Williams|
|    Maria|   Jones|
+---------+--------+

filter函数和where函数都是从dataframe中选择各种row,where和filter的用法都是一样的

下面是filter的多种形式

1) filter(condition: Column): Dataset[T]		//选择单一条件
2) filter(conditionExpr: String): Dataset[T] 		//sql语法使用
3) filter(func: T => Boolean): Dataset[T]		
4) filter(func: FilterFunction[T]): Dataset[T]

第一种形式:

df.filter(df("state") === "OH").show(false

第二种形式:

df.filter("gender == 'M'").show(false)
df.where("gender == 'M'").show(false)

以上就是spark sql选择列和选择行的函数,可以看出spark sql的很多语句都是可以使用表达式的,跟sql一样。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/774679.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号