使用IDEA开发Spark SQL

本文介绍了如何在IDEA中使用Spark SQL进行数据处理,包括指定列名添加Schema、通过StructType理解Schema、反射推断Schema的方法,并详细探讨了SQL方式和DSL的花式查询。同时,文章还涵盖了RDD、DataFrame和Dataset之间的相互转化操作,以一个Spark SQL实现的WordCount例子作为实战应用。
摘要由CSDN通过智能技术生成

指定列名添加Schema

package SparkSql

import org.apache.spark
import org.apache.spark.rdd.RDD
import org.apache.spark.sql.SparkSession
import java.util.Properties

import org.apache.avro.ipc.specific.Person
import org.apache.spark.sql.{
   DataFrame, SaveMode, SparkSession}
object CreateDFDS {
   

  def main(args: Array[String]): Unit = {
   
    import org.apache.spark
    //创建sparksession
    val spark=  SparkSession.builder().master("local[*]")
      .appName("Spark Sql basic example")
      .getOrCreate()
    //通过sparksession对象获得到sparkcontext
    val sc = spark.sparkContext
    //读取数据 转换rdd
    val data: RDD[String] = sc.textFile("input/tt.txt")
    val lineRDD: RDD[Array[String]] = data.map(_.split(" "))
    val rowRDD= lineRDD.map(line =>(line(0).toInt,line(1),line(2).toInt))

    //隐试转换  (作用:):为对象添加原本不具有的功能/ 方法
    //scala中隐式转换实现了为RDD添加toDF 和toDS
    import spark.implicits._
    val personDF: DataFrame = rowRDD.toDF()
    personDF.show(10)
    personDF.printSchema()
    sc.stop()
    spark.stop()
  

  }
}

StructType指定Schema-了解

package day0413
import org.apache.spark.SparkContext
import org.apache.spark.rdd.RDD
import org.apache.spark.sql.types.{
   IntegerType, StringType, StructField, StructType}
import org.apache.spark.sql.{
   DataFrame, Row, SparkSession}
//  StructType指定Schema
object CreateDFDS2 {
   
  def main(args: Array[String]): Unit = {
   
    // TODO:  StructType指定Schema
    //1.创建SparkSession
    val spark: SparkSession = SparkSession.builder().master("local[*]").appName("SparkSQL").getOrCreate</
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值