1.读文件

通过 sc.textFile(“file://")方法来读取文件到rdd中。

val lines = sc.textFile("file://")//文件地址或者HDFS文件路径

本地地址

"file:///home/hadoop/spark-1.6.0-bin-hadoop2.6/examples/src/main/resources/people.json"

HDFS文件地址

"hdfs://112.74.21.122:9000/user/hive/warehouse/hive_test"

2.保存文件

通过sc.saveAsTextFile("file://")把 rdd 内容保存到文件

rdd.saveAsTextFile("file:///home/writeout.txt");//把rdd写入/home/writeout.txt

但是我们打开/home文件夹,发现writeout并不是txt文件而是一个文件夹,我们打开文件夹,结构如下

我们保存错了嘛?没有,这时正常的。part-00000代表的是分区,如果有多个分区,会有多个part-xxxxxx的文件。

如果我们要再次读取这个保存的文件并不需要一个一个分区读取,直接读取就可以了,spark会自动加载所有分区数据。

val rdd = sc.textFile("file:///home/writeout/part-00000");//我们并不用这样一个一个读取

val rdd = sc.textFile("file:///home/writeout.txt");//直接这样读取,就会自动把所有分区数据加载到rdd中

3.JSON数据解析

(1)读取JSON格式文件

直接用sc.textFile(“file://") 来读取.json文件即可

(2)JSON

Scala中有一个自带的JSON库 scala.util.parsing.json.JSON  可以实现对JSON数据解析。

通过调用 JSON.parseFull(jsonString:String) 函数对输入的JSON字符串进行解析。

如果解析成功则返回一个 Some( map:Map[String,Any] ) ,失败则返回None

示例:

文件内容

我们看到每个{...}中为一个json格式的数据,一个json文件包含若干个json格式的数据。

我们解析这个json文件的内容

1.编写程序

import org.apache.spark._

import scala.util.parsing.json.JSON

object JSONApp {

def main(args:Array[String]): Unit ={

//初始化配置:设置主机名和程序主类的名字

val conf = new SparkConf().setMaster("local").setAppName("JSONApp");

//通过conf来创建sparkcontext

val sc = new SparkContext(conf);

val inputFile = "file:///usr/local/spark/examples/src/main/resources/people.json"//读取json文件

val jsonStr = sc.textFile(inputFile);

val result = jsonStr.map(s => JSON.parseFull(s));//逐个JSON字符串解析

result.foreach(

{

r => r match {

case Some(map:Map[String,Any]) => println(map)

case None => println("parsing failed!")

case other => println("unknown data structure" + other)

}

}

);

}

}

2.将整个程序打包成jar包

3.通过spark-submit运行程序

4.查看结果

运行程序后,可以在屏幕上看到大量的输出信息,找到如下的信息,解析成功。

Unity3d-XML文件数据解析&JSON数据解析

1.XML文件数据解析:(首先须要导入XMLParser解析器,The latest released download from:http://dev.grumpyferret.com/unity/ ...

JSON数据解析 基础知识及链接收集

JSON数据解析学习 JSON介绍 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式. JSON 是存储和交换文本信息的语法.类似 XML.但是JSON 比 ...

iOS - JSON 数据解析

iOS - JSON 数据解析 前言 NS_CLASS_AVAILABLE(10_7, 5_0) @interface NSJSONSerialization : NSObject @availab ...

iOS开发笔记3:XML/JSON数据解析

这篇主要总结在iOS开发中XML/JSON数据解析过程用到的方法.XML数据解析主要使用SAX方式的NSXMLParser以及DOM方式的GDataXML,JSON数据解析主要使用NSJSONSeri ...

Android学习笔记之JSON数据解析

转载:Android学习笔记44:JSON数据解析 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种 ...

[开源 .NET 跨平台 数据采集 爬虫框架: DotnetSpider] [四] JSON数据解析

[DotnetSpider 系列目录] 一.初衷与架构设计 二.基本使用 三.配置式爬虫 四.JSON数据解析与配置系统 场景模拟 假设由于漏存JD SKU对应的店铺信息.这时我们需要重新完全采集所有 ...

浅谈JSON数据解析方法

JSON数据解析 JSON是什么?? 如何把JSON数据解析出来 如何把一个字典转换为JSON JSON详细介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交 ...

JSON数据解析(转)

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种理想的数据交换格式. 本文将主要介绍在Android ...

随机推荐

关于IE6的PNG图像透明使用AlphaImageLoader的缺点

PNG32的alpha透明效果在IE6下会出现bug,出现灰色背景.而目前的解决方案就是 IE提供的滤镜.需要注意的是滤镜并不是对原图片进行修改,而是对相应的html元素进行 修改.所以在一个html ...

Flex box弹性布局 及 响应式前端设计的优化

Flex box弹性布局 Flex box是CSS3新添加的一种模型属性,它的出现有力的打破了我们常常使用的浮动布局.实现垂直等高.水平均分.按比例划分,可以实现许多我们之前做不到的自适应布局.如果你 ...

oracle 查询当前库中所有表以及某表字段信息

select utc.COLUMN_ID,utc.TABLE_NAME,utc.COLUMN_NAME,utc.DATA_TYPE||utc.DATA_LENGTH,utc.DATA_DEFAULT, ...

学习VirtualEnv和Nginx+uwsgi用于django项目部署

以下叙述中用到的操作系统:Linux CentOS 6.X. 最近几天了解一下VirtualEnv,Apache+Daemon mode,Nginx+uwsgi的概念,并且在项目中实验性部署了一下(目 ...

Docker - Failed to connect to localhost port 4000: Connection refused

转载.翻译自 https://stackoverflow.com/questions/44014698/docker-failed-to-connect-to-localhost-port-4000- ...

ZOJ 2480 - Simplest Task in Windows

Simplest Task in Windows Time Limit: 2 Seconds      Memory Limit: 65536 KB A typical windows platfor ...

asp.netajax与jquery和bootstrap的无刷新完美实现

20190421asp.netajax与jquery和bootstrap的无刷新完美实现 设计代码和后台代码中重要部分加粗和深色以及字号加大. 设计前台代码:

04 python 初学(数据类型)

数据类型: 数字: 整数  int (integer) python3 已经不区分整型和长整型了,都叫整型 浮点型 float 复数 complex 布尔: True        False 字符串 ...

(网页)javascript小技巧(非常全)

事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElement.setCapture();  event.srcE ...

js删除数组中元素的方法

一.清空数组 var ary = [1,2,3,4]; ary.splice(0,ary.length);//清空数组 console.log(ary); // 输出 [],空数组,即被清空了 二.删 ...

spark中读取json_【spark】文件读写和JSON数据解析相关推荐

  1. spark中读取json_【Spark】使用DataFrame读取复杂JSON中的嵌套数组

    众所周知,在早期Spark版本中就已经支持读取Json格式的数据文件,并能够直接转换为数据库表,以方便我们进行处理数据,在本篇文章中我们将介绍如何通过Spark API很简单地读取Json数据,并进一 ...

  2. sublime python3中读取和写入文件时如何解决编码问题

    sublime python3中读取和写入文件时如何解决编码问题 参考文章: (1)sublime python3中读取和写入文件时如何解决编码问题 (2)https://www.cnblogs.co ...

  3. 计算机目录读取,从项目目录中读取SQL查询文件(Read SQL query file from project directory)...

    从项目目录中读取SQL查询文件(Read SQL query file from project directory) 我在Visual Studio项目中放置了3个特别大的SQL查询,位于项目目录中 ...

  4. C#中读取流媒体视频文件转H.264具体实现方法

    现在有越来越多的人在使用C#语言做编程,但我发现好像用C#做音视频流媒体开发的比较少.我们的libEasyScreenLive目前支持Windows,Android平台,通过EasyScreenLiv ...

  5. 基于QT的【第一个项目】设计+所有组件配合使用+网络编程局域网通信+文件IO操作+登录界面和头像+多界面跳转+JSON数据解析+表情包制作

    基于QT的第一个项目+所有组件配合使用+网络编程局域网通信+文件IO操作+登录界面和头像+多界面跳转+JSON数据解析+表情包制作 第一阶段 网络编程局域网TCP/IP聊天QT实现 main.c ma ...

  6. python将txt文件转为字符串_python如何将txt文件转成json数据

    python如何将txt文件转成json数据,首先我们要明白json的数据格式是如何的,实际上和python的字典格式几乎是一样的,也是需要一个大括号给括起来,知道了这点我们就知道怎么处理了. 工具/ ...

  7. Winform中怎样使用HttpClient调用http的get和post接口并将接口返回json数据解析为实体类

    场景 需要在Winform的页面初始化之后,调用http的接口,并将返回的json数据 解析,赋值到窗体中的TextBox组件中. 使用接口测试工具测试的接口返回数据如下 注: 博客: 霸道流氓气质的 ...

  8. 下列哪项不是python中对文件的读取操作-Python—文件读写操作

    初识文件操作 使用open()函数打开一个文件,获取到文件句柄,然后通过文件句柄就可以进行各种各样的操作了,根据打开文件的方式不同能够执行的操作也会有相应的差异. 打开文件的方式: r, w, a, ...

  9. Android单元测试读写文件,如何在Android单元测试中读取仅测试文件

    对于我的Android应用程序,我正在编写需要读取一些文件的单元测试. 由于这些是仅测试文件,因此我不希望它们出现在res文件夹中,因为我不希望它们最终出现在最终的.apk文件中. 我想做与此问题类似 ...

最新文章

  1. 网卡故障:弹出界面eth0: 错误:没有找到合适的设备:没有找到可用于链接System eth0 的
  2. AIX 中关于文件存储的相关命令
  3. 十条nmap常用的扫描命令
  4. matlab 万年历,matlab时钟万年历 matlab时钟万年历(附word说明文档): 程序主要 联合开发网 - pudn.com...
  5. .NET回归 HTML----超文本标记语言(暂时无图)
  6. 不再为 Node.js 模块自动引入 Polyfills
  7. 我国计算机系统安全保护等级的划分,信息安全技术题库:我国制定了强制性国家标准《计算机信息系统安全保护等级划分准则》,其中属于第二级的是()。...
  8. 兄弟节点div, +~选择器不能向前选择
  9. Sybase获取所有用户表,以及所有者(owner)
  10. Android studio显示红叉,提示Error:please select android sdk
  11. C# Aspose 去除水印 亲测有效!!!(有效测试时间:20220806)
  12. 收藏十一种常用简单实用漂亮的HTML表格样式
  13. v-distpicker 直辖市的修改
  14. 从有赞UI组件库看CSS BEM命名规范的好处
  15. wps如何只让他显示3级标题_怎么设置一二三级标题
  16. NIXIE_TUBE
  17. 安全模式没有计算机图标不见了怎么办,win10杀毒图标不见了怎么办?win10安全中心图标没了的处理方法...
  18. Java Web关键字填空
  19. 编码的秘密(python版)
  20. 如何查看MySQL数据库的版本

热门文章

  1. Android帧动画(WiFi动画)
  2. 【AIS学习】01:介绍
  3. 【AIS学习】03:A级与B级区别
  4. 西门子s7 200smart与3台三菱e740变频器通讯程序
  5. 使用MATLAB进行多元回归分析(自定义函数公式)——nlinfit函数的使用
  6. 迅为IMX6开发板QT系统创建AP热点基于RTL8723交叉编译hostapd
  7. 打官司无非是为争取民企与国企平等保护、维护契约精神之战。
  8. Mybatis逻辑分页原理解析RowBounds
  9. 解决Github下载慢的两种方法,亲测!
  10. axios 拦截器封装