Spark-SQL-Java编程

认识:最核心的编程抽象就是DataFrame。

原理:将Spark SQL 转化为 RDD, 然后提交到集群执行。

SparkSession:统一的切入点,实质上是SQLContext和HiveContext的组合。允许用户通过它调用 DataFrame 和 Dataset 相关 API 来编写程序

DataFrame:以RDD为基础的分布式数据集,二维表格。schemaRDD,比RDD多了一个表头信息(Schema)。DataFrame是用来处理结构化数据的

RDD:弹性分布式数据集.是Spark对数据进行的一种抽象,可以理解为Spark对数据的一种组织方式。更简单些说,RDD 里面包含了数据和操作数据的方法。关键字:弹性,分布式,数据集

DataSet:对于RDD而言,DataSet做了强类型支持,在RDD的每一行都做了数据类型约束。RDD转换DataFrame后不可逆,但RDD转换Dataset是可逆的。

RDD转换成dataframe

  1. 反射:根据RDD对象的具体类型映射,推导出schema,也就是反射
  2. 通过显式的程序代码构造schema,然后将schema应用到RDD上,最后转换成DataSet
-----------------------------------------------------------------------------------------------------------------
        SparkSession sparkSession = SparkSession.builder().master("local")
                .appName("Java Spark SQL")
                .getOrCreate();

        Dataset<Row> dataset = sparkSession.read().json("URL");
        //只返回name字段
        dataset.select("name").show();
        //返回两个字段,所有age的value+1
        dataset.select(col("name"),col("age").plus(1)).show();
        //选择age大于21岁的人
        dataset.filter(col("age").gt(21)).show();
        //分组聚合,group age
        dataset.groupBy("a
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值