六.SparkSQL之DataFrame操作实例实战API

前面已经说过DataFrame的基本API操作,接下来就讲下实际开发过程中的应用,首先需要准备一个数据源文件,以下面这种格式的数据(这种数据是可以清洗日志得到的)
在这里插入图片描述

第一步: 实例实战演示

import org.apache.spark.sql.SparkSession
object DataFrameCase {

def main(args: Array[String]){

val spark = SparkSession.builder().master("local[2]").appName("DataFrameCase").getOrCreate()

val rdd =spark.sparkContext.textFile("student.data")

//导入隐式转换函数
import spark.implicits._
//转换成DataFrame  要加上转义字符 \\ ,因为有一些特殊字符没有转义字符的话不识别
val student = rdd.map(_.split("\\|")).map(line => Student(line(0).toInt,line(1),line(2),line(3))).toDF()
//student2为了测试join方法
val student2 = rdd.map(_.split("\\|")).map(line => Student(line(0).toInt,line(1),line(2),line(3))).toDF()

student.show()
在这里插入图片描述

//使用show方法,默认显示的是前20条,如果想看到更多需要在方法中加入Int类型的参数,
//同时,该方法在展示数据的时候有截取的功能,长度过长会显示…
//因此,想要显示全部的话需要加上一个false参数,因为默认的是true就是截取
student.show(30,false)
在这里插入图片描述

//显示数据的前10行数据
student.take(10)
//显示第一条数据 等同于 student.head(3)(显示前三条数据)
student.first()
//过滤掉名字为空的数据
student.filter("name !='' OR name != 'NULL' " ).show

在这里插入图片描述

//找出名字以l开头的人
student.filter(“SUBSTR(name,0,1)=‘l’”).show()
在这里插入图片描述

//查询所有的内置函数
spark.sql(“show functions”).show(1000)
在这里插入图片描述

//按照名字排序操作
student.sort(student.col("name"))
//按照名字降序进行排列
student.sort(student.col("name").desc)

//队列进行重新命名
student.select(student(“name”).as(“student_name”)).show()
在这里插入图片描述
//join操作
student.join(student2,student.col(“id”) === student2.col(“id”)).show()
在这里插入图片描述
spark.stop()
}
case class Student(id: Int,name: String, phone: String, email: String )
}

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值