【赵强老师】在Spark SQL中读取JSON文件

Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用。为什么要学习Spark SQL?如果大家了解Hive的话,应该知道它是将Hive SQL转换成MapReduce然后提交到集群上执行,大大简化了编写MapReduce的程序的复杂性,由于MapReduce这种计算模型执行效率比较慢。所以Spark SQL的应运而生,它是将Spark SQL转换成RDD,然后提交到集群执行,执行效率非常快!同时Spark SQL也支持从Hive中读取数据。

Spark SQL也能自动解析JSON数据集的Schema,读取JSON数据集为DataFrame格式。读取JSON数据集方法为SQLContext.read().json()。该方法将String格式的RDD或JSON文件转换为DataFrame。

需要注意的是,这里的JSON文件不是常规的JSON格式。JSON文件每一行必须包含一个独立的、自满足有效的JSON对象。如果用多行描述一个JSON对象,会导致读取出错。

  • 需要用到的测试数据:people.json
{"name":"Michael"}
{"name":"Andy", "age":30}
{"name":"Justin", "age":19} 
  • 定义路径
val path ="/root/temp/people.json" 
  • 读取Json文件,生成DataFrame:
val peopleDF = spark.read.json(path) 
  • 打印Schema结构信息
peopleDF.printSchema()

  • 创建临时视图
peopleDF.createOrReplaceTempView("people") 
  • 执行查询
spark.sql("SELECT name FROM people WHERE age=19").show

原文地址:https://www.cnblogs.com/collen7788/p/12636672.html

时间: 2024-08-28 01:44:53

【赵强老师】在Spark SQL中读取JSON文件的相关文章

jQuery中读取json文件示例代码

json文件是一种轻量级的数据交互格式.一般在jquery中使用getJSON()方法读取,具体示例代码如下,感兴趣的朋友可以参考下哈,希望可以帮助到你 json文件是一种轻量级的数据交互格式.一般在jquery中使用getJSON()方法读取. 复制代码 代码如下: $.getJSON(url,[data],[callback]) url:加载的页面地址 data: 可选项,发送到服务器的数据,格式是key/value callback:可选项,加载成功后执行的回调函数 1.首先建一个JSON

Oracle中的游标(光标)--来自Oracle赵强老师

 表.select语句.游标:返回结果都能是一个集合. 注意:游标的结果是一个集合. --查询并打印员工的姓名和薪水 set serveroutput on /* 光标: 1. 光标的属性: %isopen %rowcount(返回的行数) %notfound %found 2. 默认情况下,一次性打开300个光标 SQL> show parameter cursor NAME TYPE VALUE ------------------------------------ ---------

赵强老师:免费实战微课系列课程

赵强老师实战微课系列课程 Oracle数据库.大数据.Weblogic中间件 永久免费!!! (*)赵强老师实战微课之一:在Oracle SQL*PLUS中修改SQL语句 http://edu.51cto.com/course/course_id-9016.html (*)赵强老师实战微课之二:搭建Hadoop的Eclipse开发环境 http://edu.51cto.com/course/course_id-9017.html (*)赵强老师实战微课之三:使用Weblogic Console生

Spark SQL 中 dataFrame 学习总结

dataFrame多了数据的结构信息.就是schema. RDD是分布式的 Java对象的集合.DataFrame是分布式的Row对象的集合. DataFrame 提供了详细的结构信息,可以让sparkSQL清楚的知道数据集中包含哪些列,列的名称和类型各是什么? RDD是分布式的 Java对象的集合.DataFrame是分布式的Row对象的集合.DataFrame除了提供了 比RDD更丰富的算子以外,更重要的特点是提升执行效率.减少数据读取以及执行计划的优化,比如 filter下推.裁剪等. 提

spark sql中进行sechema合并

spark sql中支持sechema合并的操作. 直接上官方的代码吧. val sqlContext = new org.apache.spark.sql.SQLContext(sc) // sqlContext from the previous example is used in this example. // This is used to implicitly convert an RDD to a DataFrame. import sqlContext.implicits._

(赵强老师原创)搭建CDH实验环境,三个节点的安装配置

赵强老师简介 ------------------------------------------------------- 清华大学软件工程专业毕业.现就职于Oracle(中国)有限公司高级技术顾问,在Oracle公司服务已超过10年.业界知名的Oracle数据库专家和大数据专家,精通Oracle数据库.大数据.Weblogic中间件和Java技术.同时,受聘于多家知名IT培训机构,线下培训的学员已超过万人. 赵强老师在线视频课程主页 http://edu.51cto.com/lecturer

Hadoop大数据赵强老师免费公开课招募啦~~~~

Hadoop大数据公开课招募啦~~~ 赵强老师免费公开课 l  时间:2017年03月14号晚19:30-21:00 n  19:30-20:30讲述Hadoop的背景知识,包括:大数据背景.数据仓库.Hadoop的思想来源(Google的三大思想) n  20:30-21:00答疑 l  讲师简介 13年IT行业从业经历,清华大学计算机硕士,曾在BEA.甲骨文.摩托罗拉等世界500强公司担任高级软件架构师或咨询顾问等要职,精通大数据.数据库.中间件技术和Java技术. 讲师详情链接:http:

Spark SQL中Dataframe join操作含null值的列

当在Spark SQL中对两个Dataframe使用join时,当作为连接的字段的值含有null值.由于null表示的含义是未知,既不知道有没有,在SQL中null值与任何其他值的比较(即使是null)永远不会为真.故在进行连接操作时null == null不为True,所以结果中不会出现该条记录,即左侧表格的这条记录对应右侧的值均为null.示例如下: table_a: date serverId lvSection 2018-03-04 1 10 2018-03-05 null 9 2018

Spark SQL中出现 CROSS JOIN 问题解决

Spark SQL中出现 CROSS JOIN 问题解决 1.问题显示如下所示:     Use the CROSS JOIN syntax to allow cartesian products between these relation 2.原因: Spark 2.x版本中默认不支持笛卡尔积操作 3.解决方案: 通过参数spark.sql.crossJoin.enabled开启,方式如下:   spark.conf.set("spark.sql.crossJoin.enabled"