spark中RDD和DataFrame之间的转换

今天了解了sparksql的基本知识,并且用scala语言实践了一下RDD和DataFrame之间的转换,代码如下:

package scala
import org.apache.spark.sql.types.StringType
import org.apache.spark.sql.types.StructField
import org.apache.spark.sql.types.StructType
import org.apache.spark.sql.Row
import org.apache.spark.sql.types.IntegerType
import org.apache.spark.sql.types._
import org.apache.spark.sql.SQLContext

import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
import org.apache.spark.SparkConf

object RDD2Dataset {
  
  case class Student(id:Int,name:String,age:Int)
  def main(args:Array[String])
  {

    dynamicCreate()
  }

  private def dynamicCreate():Unit={
     val conf = new SparkConf()
        conf.setMaster("local")  
            .setAppName("scalawordcount")    //设置运行方式为本地      
       val sc = new SparkContext(conf)  
       val employeeRDD = sc.textFile("H:\\student.txt")  //通过RDD读取本地文件
    val schemaString="id,name,age"         
    val fields=schemaString.split(",").map(fieldName => StructField(fieldName, StringType, nullable = true))
    val schema=StructType(fields)
    val rowRDD=employeeRDD.map(_.split(",")).map(parts⇒Row(parts(0),parts(1),parts(2)))
    var sqlContext = new SQLContext(sc)
    val stuDf=sqlContext.createDataFrame(rowRDD, schema)//创建dataframe
       
    val tmpView = stuDf.registerTempTable("student")  //将dataframe数据注册成表,以便于用数据库语句操作
    val nameDf=sqlContext.sql("select * from student")
    //nameDf.write.text("result") //将查询结果写入一个文件
    nameDf.show()

  }

}

 

转载于:https://www.cnblogs.com/zhangliqiangvictory/p/10604515.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值