SparkSql------RDD、DataFrame、DataSet之间的相互转化

本文介绍了SparkSession作为SparkSQL的统一入口,以及如何在RDD、DataFrame和DataSet之间进行转换。详细讨论了包括通过SparkSession创建、RDD转DataFrame的三种方法、使用样例类模式进行RDD转DataSet、DataSet与DataFrame之间的相互转化等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在老的版本中,SparkSQL提供两种SQL查询起始点,一个叫SQLContext,用于Spark自己提供的SQL查询,一个叫HiveContext,用于连接Hive的查询,SparkSession是Spark最新的SQL查询起始点,实质上是SQLContext和HiveContext的组合,所以在SQLContext和HiveContext上可用的API在SparkSession上同样是可以使用的。SparkSession内部封装了sparkContext,所以计算实际上是由sparkContext完成的。

SparkSession的三种创建方式

添加依赖

<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-sql_2.11</artifactId>
    <version>${spark.version}</version>
</dependency>
      /**
      * 创建SparkSession
      * builder用于创建一个SparkSession。
      * appName设置App的名字
      * master设置运行模式(集群模式不用设置)
      * enableHiveSupport 开启hive操作
      * getOrCreate 进行创建
      */
val sparks1=SparkSession.builder().appName("SparkSQLDemo").master("local").getOrCreate()
//-----------------------------------------------------------------------
val conf = new SparkConf().setAppName("SparkSQLDemo").setMaster("local")
val sparks2 = SparkSession.builder().config(conf).getOrCreate()
//-----------------------------------------------------------------------
val sparkh = SparkSession.builder().appName("SparkSQLDemo").master("local")    .enableHiveSupport().getOrCreate()
 

RDD转换为DataFrame

1.直接手动确定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值