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

📋 博主简介

  • 💖 作者简介:大家好,我是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.hqwc.cn/news/263408.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PHP 二维码内容解析、二维码识别

目录 1.首先是一些错误的示例 2.正确示例 3.二维码解析 4.完整示例,含生成 5.代码执行结果 6.参考文档 1.首先是一些错误的示例 本示例使用的是php7.3 通过搜索各种结果逐个尝试以后,得出一个可使用版本 解析错误经历:vendor核心报错 …

[C++]:10.vector使用

vector使用 一.vector使用1.构造函数:2.迭代器遍历数据:3.空间问题:1.size():返回有效数据个数:2.capacity():返回容量大小:3.容量检测:4.emptr():判断顺序表是否为空:5.…

Linux6-配置网络、源码包的编译和安装

配置 linux 网络 配置主机名 修改/etc/hostname 配置文件,永久配置主机名 [rootlocalhost ~]# vim /etc/hostname svr7.tedu.cn [rootlocalhost ~]# cat /etc/hostname svr7.tedu.cn [rootlocalhost ~]# reboot #重启生效命令行永久修改主机名 [rootlocalhost ~…

Vue3使用Tailwind CSS

安装 Tailwind 以及其它依赖项 npm install -D tailwindcsslatest postcsslatest autoprefixerlatest生成配置文件: npx tailwindcss init -p.修改配置文件 tailwind.config.js 2.6版本 : module.exports {purge: [./index.html, ./src/**/*.{vue,j…

arm-none-eabi-gcc not find

解决办法:安装:gcc-arm-none-eabi sudo apt install gcc-arm-none-eabi; 如果上边解决问题了就不用管了,如果解决不了,加上下面这句试试运气: $ sudo apt-get install lsb-core看吧方正我是运气还不错,感…

call,apply,bind

1.这三个方法都能改变this的指向 2.代码实战 let obj1 {name: "小红",age: 20,fn: function () {console.log(当前this的指向,this);console.log(我叫${this.name},今年${this.age}岁);},};obj1.fn(); 这里的代码,obj1是一个对象,里面有属性name和age 正常情况下我…

计数排序详解

前言:这篇文章会给大家把计数排序安排的明明白白,详细的讲解计数排序的原理 例子:现在我有一个数组不知道里面到底有多少个元素,但是我要把它进行排序,怎么排序呢? 我先随便拿一个数组(你假装你…

Java JMM

JMM 全称: Java Memory Model (Java 内存模式)。 它是一种虚拟机规范, 用于屏蔽掉各种硬件和操作系统的内存访问差异, 以实现 Java 程序在各种平台下都能达到一致的并发效果。 主要规定了以下两点 一个线程如何以及何时可以看到其他线程修改过后的共享变量的值, 即线程之间共享…

I.MX6ULL_Linux_驱动篇(46)linux LCD驱动

LCD 是很常用的一个外设,在Linux 下LCD 的使用更加广泛,在搭配 QT 这样的 GUI 库下可以制作出非常精美的 UI 界面。本章我们就来学习一下如何在 Linux 下驱动 LCD 屏幕。 Linux 下 LCD 驱动简析 Framebuffer 设备 先来回顾一下裸机的时候 LCD 驱动是怎…

一次 k8s 升级,竟然导致滴滴故障 12 小时?

大家好,我是君哥。 前段时间滴滴的故障相信大家都知道了。中断业务 12 小时定级为 P0 级故障一点都不冤。 故障回顾 网上有传言是运维人员升级 k8s 时,本来计划是从 1.12 版本升级到 1.20,但是操作失误选错了版本,操作了集群降级…

2-5、包含多个段的程序

语雀原文链接 文章目录 1、概述2、代码段中使用数据示例1:不指定程序入口示例2:指定程序入口原理梳理 3、在代码段中使用栈例子1例子2 4、数据、代码、栈放入不同的段例子1:end start指定程序入口第一步:设置栈顶第二步&#xff…

Lambda表达式规则,用法

Lambda表达式是JDK8新增的一种语法格式 1.作用 简化匿名内部类的代码写法 Lambad用法前提:只能简化函数式接口(一般加有Funcationallnterface)(有且仅有一个抽象方法)的匿名内部类 匿名内部类:(本质是对…