Spark Sql-写sql的方式(不重要)

Spark Sql

spark-sql 写代码方式

1、idea里面将代码编写好打包上传到集群中运行,上线使用
--conf spark.sql.shuffle.partitions=1 -- 设置spark sqlshuffle之后分区数据马,和代码里面设置是一样的,代码中优先级高
spark-submit提交
spark-submit --master yarn-client --class com.sql.Demo9Submit --conf spark.sql.shuffle.partitions=1 spark-1.0-SNAPSHOT.jar
代码如下
package com.sql
import org.apache.spark.sql.{DataFrame, SaveMode, SparkSession}

object Demo9Submit {

    def main(args: Array[String]): Unit = {
      val spark: SparkSession = SparkSession
        .builder()
        //提交到集群运行需要注释
        //      .master("local")
        .appName("submit")
        .getOrCreate()

      import spark.implicits._
      import org.apache.spark.sql.functions._

      //读取hdfs中的数据
      val studentDF: DataFrame = spark
        .read
        .format("csv")
        .option("sep", ",")
        .schema("id STRING,name STRING,age  INT,gender STRING,clazz STRING")
        .load("/spark/data/students")


      val genderNumDF: DataFrame = studentDF
        .groupBy($"gender")
        .agg(count($"gender") as "c")


      //保存数据到hdfs
      genderNumDF
        .write
        .format("csv")
        .option("sep", ",")
        .mode(SaveMode.Overwrite)
        .save("/spark/target/gender_num")
    }
}
运行结果如下

2、spark shell (repl) 里面使用sqlContext 测试使用,简单任务使用(边写代码边输出)这种属于硬写不方便

spark-shell --master yarn-client
不能使用yarn-cluster Driver必须再本地启动

3、spark-sql spark-sql --master yarn-client 不能使用yarn-cluster 和hive的命令行一样,直接写sql

开始时会打印一堆日志,如下:

我们可以在 关闭日志如下:

先改模板

修改日志级别

再次进入

在spark-sql时完全兼容hive sql的
spark-sql底层使用的时spark进行计算的
hive 底层使用的是MR进行计算的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值