`

【赵强老师】在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

 

 

分享到:
评论

相关推荐

    传智播客 赵强 Oracle课件

    在赵强老师的课程中,你可以学到以下几个重要的Oracle知识点: 1. **Oracle基础知识**:了解Oracle的历史、版本以及其在企业级应用中的重要性。学习数据库的概念、数据模型(如关系型模型)以及数据库管理系统...

    赵强老师的Oracle课件

    想要好好地学习Oracle数据库的朋友呀,你错过了她就太不值得了。里面有好多的Oracle操作命令可能你都没接触过吧。好了,话不多多说。坚信资料不错!你,值得拥有!OK.还有,之所有要你2分打赏,是我给了你这么好的...

    精通JSP编程 作者赵强

    《精通JSP编程》是赵强先生的一部深入解析JSP技术的专业著作,该书针对JSP编程进行了全面且深入的讲解,旨在帮助读者掌握JSP的核心概念和技术,提升Web应用开发能力。根据提供的文件名列表,我们可以推测书籍的章节...

    Oracle数据库赵强视频教程【3天】

    教程名称:Oracle 数据库赵强视频教程【3天】教程目录:【】Oracle安装与管理、SQL语句(赵强)【】Orcale存储过程jdbc与Orcale大文本操作等(赵强)【】SQL简单查询触发器视图(赵强)  资源太大,传百度网盘了,链接在...

    Oracle学习笔记(传智播客 赵强)

    在Oracle数据库的学习中,SQL优化是一项至关重要的技能,因为它直接影响到数据库的性能和查询效率。以下是一些关于SQL优化的关键知识点: 1. **使用列名代替通配符(*)**:在编写SQL查询时,避免使用`*`来获取所有列...

    精通JSP编程 作者赵强 编

    精通JSP编程 作者赵强 编 12-18节

    oracle讲义

    7. 光标的使用:12 光标的使用.ppt会详细说明如何在PL/SQL中使用游标来处理单行或多行结果集,包括声明、打开、读取和关闭光标等步骤。 8. 存储过程与函数:14 存储过程与函数.ppt将阐述这两者的定义、用途和创建...

    [1120][赵强精通JSP编程][37M]

    根据提供的文件信息,我们可以推断出这是一份与Java Server Pages (JSP)相关的学习资料介绍,特别是关于赵强编写的《精通JSP编程》这本书的相关信息。下面将基于这个理解来生成相关知识点。 ### 一、JSP基础概念 ...

    10天掌握MongoDB

    在安装过程中,需要设置数据目录和日志文件目录,并根据需要配置内存映射和自动故障转移等高级特性。 在MongoDB的使用中,我们可以使用命令行工具进行数据操作,包括创建、读取、更新和删除(CRUD)操作。MongoDB的...

    Hadoop+Spark精选课程

    Oracle中国有限公司高级技术顾问赵强老师大数据Hadoop+Spark精选课程。Hadoop、Spark和Storm,每个人都认为他们正在做一些与这些新的大数据技术相关的事情,但它不需要很长的时间遇到相同的模式。具体的实施可能有所...

    ODB 文件转换为可编辑PCB板图研究.pdf

    由于PCB(Printed Circuit Board)板图设计的复杂性,不同的EDA(Electronic Design Automation)软件在输出的PCB板图文件格式上存在互不兼容的问题,这导致了EDA软件间数据交换困难,从而影响了PCB板图的整体优化...

    二年级数学生活中的大数赵强PPT学习教案.pptx

    这篇PPT学习教案主要针对二年级的学生,旨在教授他们在生活中如何理解和使用大数。课程以实际生活中的例子引入,帮助...在教学过程中,教师可能会引导学生进行估算、比较和排序,培养他们的逻辑思维和问题解决能力。

    二年级数学生活中的大数赵强PPT课件.pptx

    这些实例都是为了让学生在实际情境中感知大数,并了解它们在我们生活中的应用。 课件的第16页开始引入了数位的概念,通过填空的形式让学生理解“个”、“十”、“百”、“千”的进制关系,比如10个一是10,10个十是...

    java代码-46 赖赵强

    在本项目中,标题"java代码-46 赖赵强"暗示了这是一个与Java编程相关的代码示例,可能是由一个名叫赖赵强的开发者编写的。在Java编程领域,这种命名通常是为了记录个人的学习过程或者项目经历。描述中的内容相同,...

    day2013-0110-webLogic配置和集群(赵强).zip

    2. 创建集群:在WebLogic管理控制台中,创建一个新的集群,为每个成员服务器指定主机名和端口,并配置集群间的通信设置。 3. 部署到集群:应用部署到集群时,会自动复制到所有集群成员,确保所有节点都能处理请求。...

    IT人必知必会的100个课程-终极大揭秘

    3. 容器技术:Docker作为目前最流行的容器化平台,在文件中也有体现。丁明一讲师的权威Docker指南课程、贺永康讲师关于使用Docker部署Nextcloud云盘服务的课程,都展示了Docker在当前IT技术中的重要性。 4. 云计算...

Global site tag (gtag.js) - Google Analytics