Spark Sql教程(5)———dataset和dataframe

本文详细介绍了Spark SQL中的Dataset和DataFrame概念。Dataset作为只有一列且默认名为value的数据结构,而DataFrame可以看作是Dataset[Row]的表示。在处理结构化数据时,DataFrame由多个Row对象组成,支持多种操作,如过滤和排序,无需反序列化。通过示例展示了如何使用Dataset进行wordcount操作,包括查看原始信息、切分字符串和按单词计数并排序。
摘要由CSDN通过智能技术生成

dataset是只有一列的表,默认列名为value
dataframe等价于dataset[row],也就是说我们读取结构化数据文件的每一行,作为一个Row对象,最后由众多的Row对象和对应的结构信息构成了Dataset对象,除了定义Row类型的dataset,用户还可以自定义变量类型,制定自定义的类型在网络传输的过程中需要序列化和反序列化,但是spark允许无需反序列化的情况下对其执行很多的操作(过滤、排序等)

package sparksql

import org.apache.spark.sql.SparkSession

object SparkSqltest1 {

  def main(args: Array[String]): Unit = {
    //创建sparksession
    val   sparkSession=SparkSession.builder().appName("test1").master("local[*]")getOrCreate()
    import  sparkSession.implicits._
    //读取文件形成dataframe
    // case  class Person(name:String,age:Long)
    //  val caseClassDS=Seq(Person("zhangsan",18),Person("lisi",19)).toDS()
    //caseClassDS.show()
    val intDS=Seq(1,2,3,4).toDS()
    intDS.map(_+1).show()
    val   df=sparkSession.read.json("hdfs://192.168.1.181:9000/json/data.json")

  }
}

结果为:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值