《PySpark大数据分析实战》-01.关于数据

news2024/11/30 2:51:41

📋 博主简介

  • 💖 作者简介:大家好,我是wux_labs。😜
    热衷于各种主流技术,热爱数据科学、机器学习、云计算、人工智能。
    通过了TiDB数据库专员(PCTA)、TiDB数据库专家(PCTP)、TiDB数据库认证SQL开发专家(PCSD)认证。
    通过了微软Azure开发人员、Azure数据工程师、Azure解决方案架构师专家认证。
    对大数据技术栈Hadoop、Hive、Spark、Kafka等有深入研究,对Databricks的使用有丰富的经验。
  • 📝 个人主页:wux_labs,如果您对我还算满意,请关注一下吧~🔥
  • 📝 个人社区:数据科学社区,如果您是数据科学爱好者,一起来交流吧~🔥
  • 🎉 请支持我:欢迎大家 点赞👍+收藏⭐️+吐槽📝,您的支持是我持续创作的动力~🔥

文章目录

  • 《PySpark大数据分析实战》-01.关于数据
    • 前言
    • 关于数据
    • 结束语

《PySpark大数据分析实战》-01.关于数据

前言

大家好!今天为大家分享的是《PySpark大数据分析实战》第1章第1节的内容:关于数据。

关于数据

随着进入互联网时代,我们便进入了一个数据大爆炸的时代。由于互联网整合资源的能力在不断提高,越来越多的社会资源被网络化和数字化,数据可以承载的价值在不断提高,大数据正在成为整个互联网技术发展的重要动力,正在成为企业重要的生产资料之一。大数据主要呈现出几个层面的特点:

1)体量大(Volume)。普通人日常接触到的数字化信息,一本小说、书籍的大小只有几百KB,一首MP3歌曲的大小只有几MB,一部电影的大小有几百MB到几GB,想要存储日常生活、工作中的资料,几TB就已经能满足大部分人的需求了。但是在企业中就不同了,电商网站每天的商品交易数据能够达到几十TB,社交网站用户每天产生的数据能达到几百TB。互联网企业的数据已经达到PB、EB甚至ZB级别。

2)种类多(Variety)。广泛的数据来源决定了大数据种类的多样性,任何形式的数据都可以产生作用。这其中包括存储在关系型数据库中的结构化数据,也包括文本、图片、音频、视频等非结构化数据。

3)速度快(Velocity)。大数据的产生非常迅速,这些数据都需要快速及时地处理,因为这些海量的数据中大部分数据的价值并不高,花费大量的资本去存储这些数据并不划算。而对于有价值的数据则需要快速地生成分析结果,用于指导生产生活实践。

4)价值密度低(Value)。在这些海量的数据中,有价值的数据所占的比例很小,并且分散在这些海量的数据中,其价值密度远低于传统关系型数据库中已有的数据。大数据的最大价值在于通过从海量数据中挖掘出对未来趋势与预测分析有价值的数据。

5)真实性(Veracity)。大数据的真实性由IBM提出,认为互联网上留下的都是人类行为的真实电子踪迹,能真实地反映人们的行为。但是人们后来发现,互联网的虚拟性和隐匿性,导致互联网上存在大量虚假的、错误的数据。不同领域、不同来源的数据,可靠性是有差异的,舆情数据的真实性尤其值得考量。因此,这个特点在后来被悄然隐去了。大数据中存在一定程度的噪声和不确定性,在处理和分析时需要考虑数据的真实性和可靠性。

6)可视化(Visualization)。大数据所面临的数据量大、数据来源多样、数据复杂多变,这些都使得人们难以直接了解和处理数据。因此,大数据分析需要注重结果的可视化,这也是大数据与传统数据分析不同的一个重要特点。可视化结果更直观、更易懂、更能形象的解释数据内在联系。大数据可视化需要呈现出高质量的图形和直观的视觉效果,使得数据分析和决策更加精准和有力。

想要从这些海量数据中提取有价值的数据,我们必须想方设法好好地存储和分析这些数据。大数据的基本处理流程,主要包括数据采集、存储管理、处理分析、结果呈现等环节。

谷歌作为一个搜索引擎,每天要爬取海量的数据,因此需要解决数据的存储问题。数据通常使用硬盘来进行存储,一块硬盘的容量总是有限的,虽然硬盘的存储容量多年来一直在提升,但对于海量的数据依然无法用一块硬盘来存储。虽然可以提高硬盘的存储容量,但更大的容量意味着需要更长的数据读取时间,减少数据读取时间的办法是减少一块硬盘上存储的数据量。当无法用一块硬盘来存储所有数据时,我们不必要想方设法打造一块超级硬盘,而是应该千方百计综合利用更多的硬盘来进行存储。每一块硬盘存储一部分数据,更多的硬盘一起就可以存储下海量的数据,这样不仅能存储海量的数据,而且读取数据的时候还可以同时从多块硬盘上读取,缩短了读取所有数据需要的时间。数据存储的问题是有解决方案了,但是对于这种存储方案还有更多的问题需要解决:当需要读取一个文件的时候,需要从哪块硬盘进行读取?当遇到一个超大文件,以至于一块硬盘都存放不下而被拆分到多块硬盘进行存储,需要从哪几块硬盘进行读取才能获得一个完整的文件?当某一块硬盘发生故障,硬盘上的数据无法读取时,如何保证数据不丢失?为了满足谷歌迅速增长的数据处理需求,谷歌实现了一个谷歌分布式文件系统(Google File System,GFS),并于2003年发表了一篇论文The Google File System专门描述了GFS的产品架构。

对于爬取回来的海量数据如何呈现给用户,这就涉及到海量数据的运算,例如需要对数据进行聚合、排序等。为了解决其搜索引擎中的大规模网页数据的并行化处理,谷歌提出了分布式计算模型MapReduce。MapReduce的灵感来源于函数式编程语言中的内置函数map()和reduce()。在函数式编程语言中,map()函数对集合中的每个元素做计算,reduce()函数对集合中的每个元素做迭代。集合中的元素能够做迭代,说明集合中的元素是相关的,比如具有相同的数据类型,并且reduce()函数的返回值也与集合中的元素具有相同的数据类型。将map()函数和reduce()函数结合起来,就可以理解为map()函数将杂乱无章的原始数据经过计算后得到具有相关性的数据,这些数据再由reduce()函数进行迭代得到最终的结果。在MapReduce计算模型里,Map阶段将杂乱无章的原始数据按照某种特征归纳起来,Reduce阶段就可以对具有相同特征的数据进行迭代计算,得到最终的结果。在2004年,谷歌发表了一篇论文MapReduce: Simplified Data Processing on Large Clusters向全世界介绍了他们的MapReduce系统。

结束语

好了,感谢大家的关注,今天就分享到这里了,更多详细内容,请阅读原书或持续关注专栏。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1299770.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VSCode安装与使用

VS Code 安装及使用 1、下载 进入VS Code官网:地址,点击 DownLoad for Windows下载windows版本 注: Stable:稳定版Insiders:内测版 2、安装 双击安装包,选择我同意此协议,再点击下一步 选择你…

jquery实现省市区三级联动

一、技术: 前端采用的是jsp页面 后端采用springmvc+mybatis+mysql8 效果图 二、cascadeSelect.jsp页面 <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%String path = request.getContextPath();String basePath = r…

流程画布开发技术方案归档(G6)

&#x1f3a8; 在理想的最美好世界中&#xff0c;一切都是为最美好的目的而设。 —— 伏尔泰 如果可以实现记得点赞分享&#xff0c;谢谢老铁&#xff5e; 一、技术选型 •从可维护性和可拓展性出发 •基本满足 1&#xff1a;链接: https://github.com/hukaibaihu/vue-org…

Java 手写设计HashMap源码,让面试官膜拜

Java 手写HashMap源码&#xff0c;让面试官膜拜 一&#xff0c;手写源码 这是一个模仿HashMap的put&#xff0c;get功能的自定义的MyHashMap package cn.wxs.demo;import java.io.Serializable; import java.util.*; import java.util.function.BiConsumer;class MyHashMap&…

【解密考研英语:Python数据分析与可视化】

解密考研英语&#xff1a;Python数据分析与可视化 背景数据集技术选型功能实现创新点 大家好&#xff0c;欢迎阅读我的CSDN博客&#xff01;今天我将分享一项有关考研英语真题的数据分析与可视化项目&#xff0c;希望对考研学子提供更有针对性的复习帮助。 背景 作为考研学子…

【TwinCAT学习笔记 1】TwinCAT开发环境搭建

写在前面 作为技术开发人员&#xff0c;开启任何一项开发工作之前&#xff0c;首先都要搭建好开发环境&#xff0c;所谓磨刀不误砍材工&#xff0c;一定要有耐心&#xff0c;一次不行卸载再装。我曾遇到过一个学生&#xff0c;仅搭建环境就用了两周&#xff0c;这个过程也是一…

Docker容器的可视化管理工具—DockerUI本地部署与远程访问

文章目录 前言1. 安装部署DockerUI2. 安装cpolar内网穿透3. 配置DockerUI公网访问地址4. 公网远程访问DockerUI5. 固定DockerUI公网地址 前言 DockerUI是一个docker容器镜像的可视化图形化管理工具。DockerUI可以用来轻松构建、管理和维护docker环境。它是完全开源且免费的。基…

3接上篇 我的自定义GPTs的改进优化 与物理世界连接成功 GPTs的创建与使用定义和执行特定任务的功能模块 通过API与外部系统或服务的交互

https://blog.csdn.net/chenhao0568/article/details/134875067?spm1001.2014.3001.5502 从服务器日志里看到请求多了一个“location” 23.102.140.123 - - [08/Dec/2023:14:02:20 0800] "GET /getWeather.php?location&locationNewYork HTTP/1.1" 200 337 &…

公式识别任务各个链条全部打通

目录 引言公式识别任务是什么&#xff1f;公式识别任务解决方案初探使用建议写在最后 引言 随着LaTeX-OCR模型转换问题的解决&#xff0c;公式识别任务中各个链条已经全部打通。小伙伴们可以放开膀子干了。 解决业界问题的方案&#xff0c;并不是单独训练一个模型就完事了&am…

Spring Bean基础

写在最前面: 本文运行的示例在我github项目中的spring-bean模块&#xff0c;源码位置: spring-bean 前言 为什么要先掌握 Spring Bean 的基础知识&#xff1f; 我们知道 Spring 框架提供的一个最重要也是最核心的能力就是管理 Bean 实例。以下是其原因&#xff1a; 核心组件…

data_loader返回的每个batch的数据大小是怎么计算得到的?

data_loader是一个通用的术语&#xff0c;用于表示数据加载器或数据批次生成器。它是在机器学习和深度学习中常用的一个概念。 一、data loader 数据加载器&#xff08;data loader&#xff09;是一个用于加载和处理数据集的工具&#xff0c;它可以将数据集划分为小批次&#…

Oracle 中换行chr(10)、回车chr(13)

一、前言 chr(n)&#xff1a;返回 ascii 值对应的字符。 ascii(char)&#xff1a;返回字符 char对应的ascii 值。 chr(n) 和 ascii(char) 作用刚好是相反的。 SQL> select chr(65) from dual; 控制台显示&#xff1a;ASQL> select ascii(A) from dual; 控制台显示&am…

Oracle高可用一家老小全在这里

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…

FL Studio2024永久免费体验版下载

FL Studio中文绿色21版是一款无需要安装的汉化版本&#xff0c;它是一款非常专业的音频编辑软件&#xff0c;可以让你的音乐突破想象力的限制哦&#xff0c;FL Studio21中文版可以制作出不同音律的节奏&#xff0c;FL Studio内置众多电子合成音色&#xff0c;只Styrus可以让人激…

鸿蒙开发组件之ForEach列表

一、ForEach函数 ForEach函数是一个迭代函数&#xff0c;需要传递两个必须参数和一个可选参数。主要通过迭代来获取参数arr中的数据不断的生成单个Item来生成鸿蒙中的列表样式 二、先创建单个的Item的UI 通过嵌套Row与Column来实现单个Item的UI。例如图中没有折扣的可以看成一…

C++-引用和指针区别

文章目录 1.变量的组成2.指针2.1 定义2.2 使用指针操作变量2.3 为什么使用指针 3.引用3.1 定义3.2 引用注意事项 4.引用和指针的区别 1.变量的组成 变量的组成&#xff1a;变量地址&#xff0c;变量名&#xff0c;变量值 例&#xff1a; int i 12;2.指针 2.1 定义 指针用于存…

【Python】简单的翻译软件

用translate包和tkinter写一个简单的桌面翻译软件。 1、窗口设置&引入包&#xff1a; from tkinter import * from tkinter.ttk import * from tkinter.messagebox import * import translatewinTk() win.title(翻译) win.geometry("600x400")win.mainloop() …

【Linux系统编程】初步运用git工具

介绍&#xff1a; 使用git之前首先要先认识gitee/github&#xff0c;gitee/github是一个远程仓库网站。git是平台专门开发的一个操控工具&#xff0c;是一个开源的分布式版本控制系统&#xff0c;我们使用git工具来与gitee/github来取得联系。 git的推送使用&#xff1a; git既…

解决electron修改主进程后需要重启才生效

nodemon 是一种工具&#xff0c;可在检测到目录中的文件更改时通过自动重新启动节点应用程序来帮助开发基于 node.js 的应用程序 nodemon 特性 自动重新启动应用程序。检测要监视的默认文件扩展名。默认支持 node&#xff0c;但易于运行任何可执行文件&#xff0c;如 python、…

uniapp获取wifi连接状态

当使用Uniapp开发移动应用时&#xff0c;我们经常需要获取设备的连接状态&#xff0c;特别是WiFi连接状态。下面是一个简短的关于在Uniapp中获取WiFi连接状态的博客&#xff1a; 在Uniapp中&#xff0c;要获取设备的WiFi连接状态&#xff0c;我们可以利用uni.getNetworkType接…