测试文件

测试文件employees.json,内容如下:

{"name":"Michael", "salary":3000, "age": 28}
{"name":"Andy", "salary":4500}
{"name":"Justin", "salary":3500}
{"name":"Berta", "salary":4000}
{"name":"vincent", "salary":90000}

CREATE DataFrame

package cn.ac.iie.sparkimport org.apache.spark.sql.SparkSession/*** DataFrame API基本操作*/object DataFrameApp {def main(args: Array[String]): Unit = {val spark = SparkSession.builder().appName("DataFrameApp").master("local[2]").getOrCreate()// 本地文件系统或者HDFS都支持// 将Json文件加载成一个DataFrameval peopleDF = spark.read.format("json").load("file:///E:/test/employees.json")// 输出DataFrame对应的Schema信息peopleDF.printSchema()// 默认展示数据集前20条记录peopleDF.show()//查询某列的所有数据,相当于mysql中的 select name frompeopleDF.select("name").show()peopleDF.select(peopleDF.col("name"), peopleDF.col("age") + 10).show()peopleDF.select(peopleDF.col("name"), (peopleDF.col("age") + 10).as("age2")).show()// 根据某一列的值进行过滤: select * from table where age > 20peopleDF.filter(peopleDF.col("age") > 20).show()// 根据某一列进行分组,然后在进行聚合操作:select age, count(1) from table group by agepeopleDF.groupBy(peopleDF.col("age")).count().show()spark.stop()}
}

show()方法默认展示前20条记录,如果要展示多条,则写为show(100)

printSchema

peopleDF.printSchema()

show

peopleDF.show()

select

查询某一列数据

peopleDF.select("name").show()

查询某几列所有的数据

peopleDF.select(peopleDF.col("name"), peopleDF.col("age") + 10).show(),并且还可以对某一列数据进行相应的计算。

给某列名起别名

peopleDF.select(peopleDF.col("name"), (peopleDF.col("age") + 10).as("age2")).show()

filter

peopleDF.filter(peopleDF.col("age") > 20).show()

group

根据某一列进行分组,然后在进行聚合操作.
原始数据:

peopleDF.groupBy(peopleDF.col("age")).count().show()

SparkSQL之DataFrame API相关推荐

  1. SparkSql之DataFrame操作

    Spark SQL中的DataFrame类似于一张关系型数据表.在关系型数据库中对单表或进行的查询操作,在DataFrame中都可以通过调用其API接口来实现.可以参考,Scala提供的DataFra ...

  2. PySpark | SparkSQL入门 | DataFrame入门

    文章目录 一.快速入门 1. 什么是SparkSQL 2. 为什么要学习SparkSQL 3. SparkSQL特点 二.SparkSQL概述 1. SparkSQL和Hive的异同 2. Spark ...

  3. Spark调优、DataFrame API使用、大表Join、动态分区

    Spark DataFrame [scala版] 实践小结 Spark DataFrame 使用注意事项 下面介绍的是使用Dataframe时 api 文档中没有写,但是需要注意的坑. DataFra ...

  4. SparkSQL之DataFrame 编程(创建DataFrame ,DataFrame数据运算操作 ,输出存储DataFrame)(11)

    一  新的编程入口 SparkSession SparkSession 是 Spark 最新的 SQL 查询起始点 ,实质上是 SQLcontext 和 SparkContext 的组合 ,所以在 S ...

  5. 35、sparkSQL及DataFrame

    一.saprkSQL背景 Spark 1.0版本开始,推出了Spark SQL.其实最早使用的,都是Hadoop自己的Hive查询引擎:但是后来Spark提供了Shark:再后来Shark被淘汰,推出 ...

  6. SparkSQL 创建 DataFrame 的方式

    1.读取 json 格式的文件创建 DataFrame 注意: 可以两种方式读取 json 格式的文件. df.show()默认显示前 20 行数据. DataFrame 原生 API 可以操作 Da ...

  7. SparkSQL之DataFrame案例

    待处理文件 准备待处理文件student.data,内容如下: 1|vincent|13827460000|gvark@eyou.com 2|jenny|13827460002|ovwgofpa@56 ...

  8. Python DataFrame Api整理

    DataFrame是提供了很多非常强大的表格管理函数,可以方便的处理表格型数据,DataFrame可以看成每一列都是一个Series组成的表格 DataFrame初始化 import pandas a ...

  9. sparksql:dataframe数据写入到Hbase中

    一.步骤:在idea中编程 1.1 添加依赖 <?xml version="1.0" encoding="UTF-8"?> <project ...

最新文章

  1. 如何恢复默认域策略和默认域控制器策略
  2. 信号与系统参考书推荐
  3. CentOS 5.x 系统下使用yum 升级php到5.2.x
  4. 禁止MT在公式后面自动添加一个空格
  5. 有图有真相!这世界上,竟有人跟你长得一模一样!
  6. 利用ssh反向代理以及autossh实现从外网连接内网服务器
  7. C++ opengl 点光源
  8. MYSQL 5.1自动安装脚本
  9. OpenShift 4 Hands-on Lab (8) 基于Gogs+Nexus+Sonarqube的Jenkins CI/CD Pipeline
  10. TokenInsight:BTC新增流量延续上升,链上活跃度保持高位运行
  11. (一〇二)静态库(.a)的打包
  12. 人口会一直增长下去吗_想要一直美下去?护肤雷区你避开了吗?
  13. unity项目小记_unity webplayer Failed to update unity web player错误解决办法
  14. 移动端车牌识别要做到那一步?
  15. 今天去地坛书市淘书了
  16. echart自定义动画_echarts动画效果
  17. 设置单独进程打开资源管理器有效防止电脑假死!
  18. Programming Ruby 读书笔记(七)
  19. 非核心版本的计算机上_哪个版本的Microsoft Office最好使用、来占用最少的资源...
  20. http、tcp/ip、socket

热门文章

  1. Package name must have at least two identifiers 解决办法
  2. SEO优化技巧:16个方法优化网页中的图片
  3. java iterator map_Java循环遍历输出map方法
  4. 如何用Excel统计出各科指定分数段的人数?(亲测)
  5. 《程序员》2月精彩内容:互联网应用架构面面观
  6. MySQL主从复制的原理:IO用于交互 SQL用于解析执行;主bin-log 从relay-log;
  7. PHP的$_FILES
  8. python scatter参数详解_python matplotlib.scatter 用法
  9. apollo修改配置刷新bean_技术文档丨Apollo软件概述
  10. matlab 实验6 高层绘图操作,实验06_高层绘图操作(第5章).doc