10 2019 档案

摘要:楔子 导入一个模块,我们一般都会使用 import,但除了 import 之外还有很多其它的方式,下面我们来介绍一下。 之所以要介绍,是因为有些场景下 import 难以满足我们的需要。 __import__ 这是一个内置函数,解释器在 import 的时候,实际上就执行了这个函数。 # impor 阅读全文
posted @ 2019-10-31 18:11 古明地盆 阅读(1111) 评论(1) 推荐(1)
摘要:楔子 本次来聊一聊 BitMap,这个在面试中经常会问到,在介绍它之前我们先来看一个问题。 假设当前你的服务有一千万个用户,每个用户都有一个整型ID,你要能够实时统计当前在线的人数,以及某个用户有没有登陆,这个时候你要怎么做呢? 首先我们想到用一个集合,来保存每个用户的 ID。当用户登陆时,就将 I 阅读全文
posted @ 2019-10-30 14:22 古明地盆 阅读(729) 评论(0) 推荐(0)
摘要:楔子 本次来聊一聊分布式系统中的数据复制,数据复制意味着在通过网络连接的多台机器上保留相同数据的副本,而这么做的原因无非以下几点: 使得数据与用户在地理上接近(从而减少延迟) 即使系统的一部分出现故障,系统也能继续工作(从而提高可用性) 扩展可以接受读请求的机器数量(从而提高读取吞吐量) 这里假设你 阅读全文
posted @ 2019-10-30 12:50 古明地盆 阅读(1210) 评论(0) 推荐(0)
摘要:楔子 可靠性(Reliability)、可扩展性(Scalability)、可维护性(Maintainability)一直是分布式系统所绕不开的几个话题,当然它们的含义也很好理解,简单来说的话就是: 可靠性:系统在困境(adversity)中仍然可以正常工作,这里困境指的是诸如「硬件故障」、「软件故 阅读全文
posted @ 2019-10-28 18:30 古明地盆 阅读(10303) 评论(0) 推荐(2)
摘要:楔子 下面我们说几个魔法方法,这几个魔法方法比较特殊,因为我们不经常用。但是相信你在看完之后,能够对python的类有更深刻的理解。下面我们就来介绍一下__instancecheck__、__subclasscheck__、__subclasshook__这几个魔法方法。 __instanceche 阅读全文
posted @ 2019-10-24 13:32 古明地盆 阅读(3600) 评论(1) 推荐(2)
摘要:楔子 作为动态语言,python里面提供了很多以双下划线:__开头和结尾的属性,我们称之为魔法属性,这些属性是对象所内置的。我们可以直接通过这些魔法属性动态地查看一个对象的信息,下面我们就来看一看。 __name__ __name__是用来获取一个对象的名字的 print(int.__name__) 阅读全文
posted @ 2019-10-24 10:49 古明地盆 阅读(1268) 评论(0) 推荐(0)
摘要:楔子 在之前的文章中我们详细介绍了 Hadoop,那么本次来聊一聊 Spark。相信 Spark 大家都知道,它是一款基于内存的并行计算框架,在业界占有举足轻重的地位,是很多大数据公司的首选。之前介绍 Hadoop 的时候说过,相比 Spark,MapReduce 是非常鸡肋的,无论是简洁度还是性能 阅读全文
posted @ 2019-10-23 10:40 古明地盆 阅读(7627) 评论(3) 推荐(5)
摘要:从本节开始我们将会学习进阶内容。进阶内容将会介绍更加复杂的多表查询、子查询、集合运算以及各种高级的数据分析技术,能够让我们真正体会到 SQL 数据处理和分析的强大。 作为进阶的开始,我们先来讨论一下 SQL 中的空值问题,因为空值的特殊性导致我们很容易出现一些错误和问题。 空值与三值逻辑: SQL 阅读全文
posted @ 2019-10-22 12:29 古明地盆 阅读(921) 评论(0) 推荐(0)
摘要:什么是__init_subclass__ class Hook: def __init_subclass__(cls, **kwargs): print("__init_subclass__", cls, kwargs) class A(Hook, name="satori", age=16): p 阅读全文
posted @ 2019-10-21 19:35 古明地盆 阅读(2853) 评论(0) 推荐(0)
摘要:描述符介绍 总所周知,Python 声明变量的时候,不需要指定类型。虽然现在有了注解,但这只是一个规范,在语法层面是无效的,比如: 这里我们定义了一个 hello 函数,我们要求 name 参数传入 str 类型的变量,然而最终我们传入的变量却是 int 类型,PyCharm 也很智能的提示我们需要 阅读全文
posted @ 2019-10-21 16:35 古明地盆 阅读(1573) 评论(0) 推荐(0)
摘要:楔子 先来思考一个问题:首先我们的业务数据都存储在 MySQL 中,现在我们要使用大数据框架(如 Hive、Spark)来对 MySQL 中的数据进行分析,那么最关键的一步是什么呢? 没错,就是数据同步,我们首先要将 MySQL 中的数据同步到 HDFS 上,而搞过数仓的小伙伴肯定知道可以采用 Sq 阅读全文
posted @ 2019-10-20 21:05 古明地盆 阅读(2169) 评论(0) 推荐(0)
摘要:楔子 我们来解释一下什么是内存对齐,先来看个栗子: #include <stdio.h> typedef struct { long a; int b; char c; } S1; typedef struct { int b; long a; char c; } S2; int main() { 阅读全文
posted @ 2019-10-18 16:43 古明地盆 阅读(1493) 评论(1) 推荐(0)
摘要:楔子 上一节我们学习了 SQL 中常见的日期时间函数和类型转换函数,熟练使用各种函数可以让我们的数据处理和分析工作事半功倍。 本篇我们介绍一种为 SQL 语句增加逻辑处理功能的方法:CASE 表达式。 CASE 表达式 SQL 中的 CASE 表达式可以根据不同条件产生不同的结果,实现类似于编程语言 阅读全文
posted @ 2019-10-08 13:06 古明地盆 阅读(1062) 评论(0) 推荐(0)
摘要:楔子 下面我们来学习一下HBase,我们说 Google 有三驾马车:GFS、MapReduce、BigTable,奠定了整个大数据的根基,而 HBase 便是基于 BigTable 而诞生的。那么 HBase 到底是什么呢?下面就来学习一下 HBase 吧。 HBase 简介 HBase 定义 H 阅读全文
posted @ 2019-10-07 22:07 古明地盆 阅读(1300) 评论(0) 推荐(0)
摘要:楔子 不安全编程?用 Go 语言的时候也没发现有啥不安全的啊,而且 Go 里面有垃圾回收,也不需要我们来管理内存。当听到不安全编程这几个字,唯一能想到的也就是指针了,只有指针才可能导致不安全问题。我们知道 Go 是有指针的,但是 Go 的指针并不像 C 语言中的指针一样可以进行运算,因此在提供了指针 阅读全文
posted @ 2019-10-07 21:53 古明地盆 阅读(4890) 评论(0) 推荐(1)
摘要:Hive 介绍 什么是Hive? Hive 是基于 Hadoop 的一个数据仓库工具,由 Facebook 开源,用于解决海量结构化日志的数据统计。它可以将结构化的数据映射为类似数据库中的一张表,并提供 类SQL 查询功能,本质是将 HQL(Hive SQL) 转化为MapReduce程序。 在介绍 阅读全文
posted @ 2019-10-05 18:10 古明地盆 阅读(2717) 评论(1) 推荐(1)
摘要:楔子 selenium 相当于是一个机器人,可以模拟人类登陆浏览器的行为,比如点击、填充数据、删除 cookie 等等。Chromedriver 是一个驱动 Chrome 的程序,使用它才可以驱动浏览器,其实Chromedriver 之前是用来做自动化测试的,但是发现很适合爬虫。当然这里是 Chro 阅读全文
posted @ 2019-10-01 12:19 古明地盆 阅读(1949) 评论(0) 推荐(2)