Spark教程(三)—— 安装与使用 Spark可以独立安装使用,也可以和Hadoop一起安装使用。本教程中,我们采用和Hadoop一起安装使用,这样,就可以让Spark使用HDFS存取数据。需要说明的是,当安装好Spark以后,里面就自带了scala环境,不需要额外安装scala,因此,“Spark安装”这个部分的教程,假设读者的计算机上,没有安装Scala,也没有安装Java(当然了,如果已经安装Java和Scal...
Spark教程(二)—— RDD运行原理 一. RDD设计背景 程序运行阶段会涉及很多迭代算法, 这些场景的共同之处是, 不同计算阶段会重用中间结果, 即一个阶段的输出作为下一个阶段的输入. MapReduce在处理这种情况的时候更多的是把中间结果写入到HDFS中, 这种操作会带来大量的数据复制, 磁盘IO和序列化开销. RDD就是为了满足这种需求出现的, 它提供一个抽象的数据架构, 不必担心底层数据的分布式特性, 只需...
EleasticSearch综述(二) 1. 简单Demo索引(1) 创建一个名字为demo的索引PUT http://localhost:9200/demoES响应{ "acknowledged": true, "shards_acknowledged": true, "index": "demo"}(2) 创建索引时, 指定主分片和分片副本的数量PUT http://loc...
EleasticSearch综述(一) Elasticsearch是一个开源的分布式、RESTful 风格的搜索和数据分析引擎,它的底层是开源库Apache Lucene。EleasticSearch的特点如下:一个分布式的实时文档存储,每个字段可以被索引与搜索 一个分布式实时分析搜索引擎 能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据 由于Elasticsearch的功能...
信息检索之BM25算法 BM25算法参考文档,搜索引擎中的相关应用。import mathimport jiebaclass BM25(object): def __init__(self, docs): self.D = len(docs) # 训练集的文本数量 self.avgdl = sum([len(doc)+0.0 for doc in docs])/s...
树结构(二)——二叉搜索树、平衡二叉树、红黑树、B树、B+树 本篇博客内容略多,涵盖面比较广,小编也是正在学习中,故读者在发现有错误的说法,欢迎在评论区指出。此外,树结构本身就是一个非常复杂的大家庭,各种规则,各种条件,望大家不要气馁,加油,奥利给。一、二叉搜索树 二叉搜索树是一种特殊的二叉树,它的特点是:对于任意一个节点p,存储在p的左子树的中的所有节点中的值都小于p中的值 对于任意一个节点p,存储在p的右子树的...
树结构(一)——二叉树、字典树的操作 一、二叉树的遍历 树结构分为广度优先遍历和深度优先遍历。广度遍历是一层一层的遍历树中的元素,这种遍历方式需要借助队列的方式,左右子树分别入队列,利用队列先进先出的特性,按层对树进行遍历。深度遍历有又分为前序遍历、中序遍历、后序遍历,针对这三种遍历方式,又有利用递归的形式进行遍历,利用堆栈结构进行遍历。 尽管树的遍历看起来有很多种方式,但是我们平常更多用到的是基于...
python知识点整理 一、大文件读取(生成器实现) 利用python的f.read(1024),一次读取1024字节到内存中,同时用yield返回读取的结果,这样当内存小于文件大小时,可以分批读取文件,并进行操作。def bigFileRead(f, new_line): buf = "" while True: while new_line in buf: ...
正则表达式(一)—— 基本介绍 正则表达式在很多任务中都担任重要的角色,例如网络爬虫中我们需要筛选出相应的信息,在nlp中我们需要结构化数据,在数据挖掘中我们需要清洗脏数据,这些任务都会用到正则表达式。本文就简单的介绍正则表达式的基本操作,下一篇博客,我会自己维护一个正则表达式,将自己接触到的一些正则抛出来,供自己和有需要者参考。 下面我会介绍,python中正则表达式的一些操作,主要是match...
Spark教程(一)—— Spark基本原理介绍 本文会依次介绍spark的发展过程、与Hadoop的区别、Spark生态、Spark的运行架构。内容比较多,大家可以分模块看,此外在文章前段如果出现一些不易懂的专业名词,请不要着急后面会依次介绍。 Spark知识涉及面比较广,会与HBase、HDFS、Kafka、ML等都交集,路长且艰,小编仅与读者共同前行,若有任何不同意见,欢迎留言指教。一、Spark基本介...
深度学习环境搭建(二)—— Ubutun16.04 安装CUDA、CUDNN 该篇关于安装CUDA、CUDNN的博客是基于已经安装好NVIDA驱动的基础,具体如何安装NVIDIA驱动可参考我的上一篇博客一、安装CUDA(1)CUDA官网选择适合自己系统的版本下载。(建议选择CUDA10.0或CUDA10.1,虽说还有很多人在用CUDA9但是CUDA10的趋势越来越主流,很多product都是基于CUDA10运行的)我的系统是Ubuntu...
深度学习环境搭建(一) —— Ubutun16.04 安装NVIDIA驱动 一、在Mac上制作ubutun启动盘 传统的深度学习开发都是基于Linux系统,而大部分人都选择安装Ubutunl来开发。安装Ubutun启动盘在Windows要容易很多,只要下载对应的Ubutun镜像再借助UltraISO就可以了。但是在Mac上制作Ubutun启动盘要稍微繁琐一些,本博客主要推荐一款软件,借助这款软件在Mac上就可以轻松制作各种系统的U盘启动盘。 ...
python 列表,数组,矩阵的相互转换 import numpy as npmylist = [[1, 2, 3], [4, 5, 6]] # 列表print(type(mylist))print(mylist, end='')myarray = np.array(mylist) # 列表转数组print(type(myarray))print(myarray, end="")...
python返回某年某月的所有日期 import calendardef getMothDate(year, month): """ 返回某年某月的所有日期 :param year: :param month: :return: """ date_list = [] for i in range(calendar.monthrange(year, month)[1...
python读取千万行的mysql import osimport jsonimport pymysqlimport loggingimport logging.handlersfrom database.database import *if __name__ == '__main__': conn = pymysql.connect(host=db_host, user=db_user, passwd=...
Kafka教程(三)—— Python操作kafka kafka的producer是支持多线程的因为其会把topic里面的消息存储在各个partition里面,可以多线程操作。但是consumer不支持多线程,如果多线程操作的话,会造成offset紊乱无序。下面我们从两部分来介绍python是如何操作kafka的。 第一部分是只有一个position的topic,此时我们模拟一个发布-订阅模式,即多个consumer...
Kafka教程(二)—— Kafka安装与命令 一、ubutun18.04下Kafka安装(1)安装jdk包 Apache Kafka是基于Java的,因此需要系统安装Java。执行以下命令,安装openJDKsudo apt updatesudo apt install default-jdk(2)下载Apache Kafka 从官网下载Apache Kafka二进制文件,进行安装# ...
Kafka教程(一)—— Kafka基本原理介绍 本文会依次介绍kafka的介绍、特性、使用场景、基本概念、生产消费流程。因此前面遇到一些陌生的名词不要慌张,后面会介绍到。一、Kafka基本介绍 Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于...