首页 > 其他分享 >12.11日记

12.11日记

时间:2023-12-11 23:22:21浏览次数:32  
标签:name scala df age show 12.11 日记 select

使用DataFrame有两个方式,分别是 SQL语法和DSL语法

➢ SQL语法
    1. 通过 "临时视图" 来使用,所以先创建视图
    2. 通过 sparkSession对象执行sql进行数据查询
    scala> df.createOrReplaceTempView("user")  //创建临时视图
    scala> var viewdf = spark.sql("select id,name,age from user") //通过spark执行sql
    viewdf: org.apache.spark.sql.DataFrame = [id: bigint, name: string] //执行sql返回的还是DF
    scala> viewdf.show  //展示DF中的数据
    scala> spark.sql("select id,name,age from user").show  //也可以直接查询sql并展示
    +---+-----+---+
    | id| name|age|
    +---+-----+---+
    |  1|jack1| 18|
    |  2|jack2| 28|
    |  3|jack3| 38|
    +---+-----+---+
    
    注意:
        df.createOrReplaceTempView 只能创建当前会话有效的临时视图
        df.createOrReplaceGlobalTempView 能创建所有会话都有效的临时视图
        使用时 需要在视图名前面加上  global_temp.视图名
        
➢ DSL语法
    DSL称为 Domain-Specific Language 特定领域语言
    这是 DataFrame中管理结构化数据的API ,通过DataFrame就可以调用这些API

    scala> df.printSchema
            root
             |-- age: long (nullable = true)
             |-- id: long (nullable = true)
             |-- name: string (nullable = true)
    scala> df.select("name")
            res20: org.apache.spark.sql.DataFrame = [name: string]
    //基本查询
    scala> df.select("name").show
            +-----+
            | name|
            +-----+
            |jack1|
            |jack2|
            |jack3|
            +-----+
   //列运算         
    scala> df.select($"age" + 1).show
    scala> df.select('age + 1).show
            +---------+
            |(age + 1)|
            +---------+
             |       19|
             |       29|
             |       39|
            +---------+
            
    //取别名
    scala> df.select('name,'age + 1 as "aa").show
            +-----+---+
            | name| aa|
            +-----+---+
            |jack1| 19|
            |jack2| 29|
            |jack3| 39|
            +-----+---+    
    //统计函数
    scala> df.select(avg("age") as "平均年龄").show
            +--------+
            |平均年龄|
            +--------+
            |    48.0|
            +--------+
    //条件过滤
    scala> df.filter('age > 25).show
            +---+---+-----+
            |age| id| name|
            +---+---+-----+
            | 28|  2|jack2|
            | 38|  3|jack3|
            +---+---+-----+
    //组合+聚合函数
    scala> df.groupBy("id").count.show
            +---+-----+
            | id|count|
            +---+-----+
            |  1|    1|
            |  3|    1|
            |  2|    1|
            +---+-----+
    

标签:name,scala,df,age,show,12.11,日记,select
From: https://www.cnblogs.com/zhangmingmkzj/p/17895846.html

相关文章

  • 12.11每日总结
    今天进行了软件案例分析的大作业,下面是部分代码usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;......
  • 闲话12.11
    我是haosen的......
  • 12.11每日总结
     今天复习四级考试和设计模式的内容。 设计模式主要复习了设计模式的发展来源和七大原则的内容。单一职责原则(SingleResponsibilityPrinciple)开放-关闭原则(Open-ClosedPrinciple)里氏替换原则(LiskovSubstitutionPrinciple)依赖倒转原则(DependenceInversi......
  • 每日总结-23.12.11
    packagefanyi;importjava.awt.*;importjavax.swing.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;publicclassGUIextendsJFrameimplementsActionListener{privateJTextFieldoriginalText;privateJTextFieldtra......
  • 2023.12.11——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习;我了解到的知识点:1.c#明日计划:学习......
  • 百度网盘(百度云)SVIP超级会员共享账号每日更新(2023.12.11)
    一、百度网盘SVIP超级会员共享账号可能很多人不懂这个共享账号是什么意思,小编在这里给大家做一下解答。我们多知道百度网盘很大的用处就是类似U盘,不同的人把文件上传到百度网盘,别人可以直接下载,避免了U盘的物理载体,直接在网上就实现文件传输。百度网盘SVIP会员可以让自己百度账......
  • 12.9日记
    Sqoop命令Sqoop支持HDFS和Hive之外的其他导入目标。Sqoop还可以将记录导入到HBase中的表中。参数名称   参数含义--column-family<family>   设置导入的目标列族--hbase-create-table   如果指定,则创建缺少的HBase表--hbase-row-key<col>   指定要用......
  • 写日记
    改变ABC理论ABC理论,即情感(Affect)、行为(Behaviour)和认知(Cognition)。没有捷径可走,我们要投身其中最好的自助书:出色的人物传记适时休息评估坚持写日记,可以降低焦虑(干预法)1.日记法中的ABC理论(Pennebaker’s):a.要求写下事件本身(Behaviour)b.写下你最深刻的感受(Youraff......
  • 12.8日记
    RabbitMQ是一个开源的消息代理软件,它实现了高级消息队列协议(AMQP)标准。它的官方客户端提供了多种编程语言的接口,包括Python、Java和Ruby等。它支持消息的持久化、多种交换机类型、消息通知机制、灵活的路由和安全机制等。二、RabbitMQ工作原理RabbitMQ是由三部分组成的:生产......
  • P4119 [Ynoi2018] 未来日记
    \(\text{Links}\)LuoguBlogP4119[Ynoi2018]未来日记题外话个人生涯中第一道独立通过的Ynoi大分块!!同时也是个人生涯中通过的第十道Ynoi系列题目!!卡了好久结果加了个优化就过了/yunAC那一瞬间的场面好像56SecondsLater/ll感觉\(8.5\)的评分还是有点虚......