MapReduce

extract English words from string in python

拜拜、爱过 提交于 2020-05-08 14:39:31
问题 I have a document that each line is a string. It might contain digits, non-English letters and words, symbols(such as ! and *). I want to extract the English words from each line(English words are separated by space). My code is the following, which is the map function of my map-reduce job. However, based on the final result, this mapper function only produces letters(such as a,b,c) frequency count. Can anyone help me find the bug? Thanks import sys import re for line in sys.stdin: line = re

Java8新特性之Stream

送分小仙女□ 提交于 2020-05-08 09:21:35
前言 在想很好了解 Stream 之前,很有必要简单的了解下函数式变成以及Lambda的概念,可以阅读另外一篇 Java8新特性之Lambda 大家回忆下日常学习工作中使用的最多的 Java API 是什么?相信很多人的答案和我一样都是集合。我们选择适合的集合数据结构存储数据,而我们之于集合最多的操作就是遍历,实现查询,统计,过滤,合并等业务。 哪里用Stream 集合迭代 外部迭代:通过 for循环,Iterator迭代器遍历集合,手动的拿到集合中每个元素进行相应处理 优点 对于程序的掌控更高 性能强(如果算法功力深厚) 缺点 很多重复的模板代码 需要很多中间临时变量来减少遍历次数 性能完全取决于程序员水平,烧脑 代码不易读 容易出错:例如for循环遍历LinkedList会出错 内部迭代:只提供对集合中元素的处理逻辑,遍历过程交给库类,Java5提供了foreach,Java8提供了Stream 优点 代码好读 简单,只需要提供处理逻辑 缺点 有些情况性能比外部迭代差一点点 在使用foreach时不能对元素进行赋值操作 为什么要Stream 本文要介绍的Stream属于内部迭代,之前我们已经有了foreach减少了我们的代码量,为什么我们还需要Stream呢? 流水线的方式处理集合,结合Lambda爽歪歪 代码超短超好读 Stream的开始到结束就相当于一次遍历

Hive 官方手册翻译 -- Hive DML(数据操纵语言)

被刻印的时光 ゝ 提交于 2020-05-08 02:31:08
由 Confluence Administrator创建, 最终由 Lars Francke修改于 八月 15, 2018 原文链接 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DML 翻译:Google Google翻译,金山软件 金山词霸 校对:南大通用 范振勇 (2018.10.6) 在Hive中,有多种方式修改数据: LOAD INSERT 从查询到目标表 从查询到目录 成从SQL蜂巢表 UPDATE DELETE MERGE 从Hive0.8起可以使用EXPORT和IMPORT命令。 一、从文件加载到表 在将数据加载到表中时,Hive不执行任何转换。当前,Load操作是纯复制/移动操作,仅将数据文件移动到与Hive表对应的位置。 1.1、 语法 LOAD DATA [ LOCAL ] INPATH ' filepath ' [ OVERWRITE ] INTO TABLE tablename [ PARTITION (partcol1=val1, partcol2=val2 ...) ] LOAD DATA [ LOCAL ] INPATH ' filepath ' [ OVERWRITE ] INTO TABLE tablename [ PARTITION (partcol1=val1,

Hadoop本地运行模式

[亡魂溺海] 提交于 2020-05-07 21:34:21
P.S. 我为了不打扰我的毕设内容(hadoop101已被毕设占用),重新配置了虚拟机hadoop100,和上文的hadoop101没有区别,只是名字和ip地址不同而已。特此说明。 目录 2.Hadoop本地运行模式 2.1 官方Grep案例 2.1.1 在hadoop-2.9.2文件夹下创建一个input 文件夹 2.1.2 将Hadoop的xml配置文件复制到input 2.1.3 执行share目录下的MapReduce程序 2.1.4 查看输出结果 2.2 官方WordCount 案例 2.2.1 在hadoop-2.9.2文件夹下创建一个wcinput文件夹 2.2.2 在wcinput文件夹下创建一个wc.input文件 2.2.3 编辑wc.input 2.2.4 回到Hadoop目录/opt/module/hadoop-2.9.2 2.2.5 执行程序 2.2.6 查看结果 2.Hadoop本地运行模式 2.1 官方Grep案例 2.1.1 在hadoop-2.9.2文件夹下创建一个input 文件夹 [atlingtree@hadoop100 ~]$ cd /opt/modules/hadoop-2.9.2 [atlingtree@hadoop100 hadoop-2.9.2]$ mkdir input 2.1.2 将Hadoop的xml配置文件复制到input

RDKIT+postgresql做化合物数据存储与查找

自古美人都是妖i 提交于 2020-05-07 17:44:30
RDKIT:     rdkit的安装与使用,直接conda instal rdkit,不行的话,使用源码安装,将RDKIT源码下载解压到acaconda的pkg目录下,打开cmd,进入pkg下的 rdki目录使用python setup.py install ,就可以安装好RDKIT,顺便提一下RDKIT有点未知性。。有时候代码这台机器能用,那台机器不能用。。    本次使用RDKIT主要是mol文件转成smiles文件,画出化合物的2D结构图,主要用到Chem下面的几个函数。    RDKIT文档: http://www.rdkit.org/docs/index.html postgresql:     postgresql是一款强大的开源数据库,对于原生的postgresql来说有很多强大的功能,比如自带分区,并行查询的功能。     postgresql也含有大量的插件,pg-xc,pg-pool,stado等,为postgresql的分布式部署提供了解决方案。    本次的数据是一个12TB 1E分子的化合物数据库,在我实践之下只选择了670M的数据。    整个项目的大体构思如下     数据库存储 关系型数据库,如MySQL,PostgreSQL     分布式存储 数据库查询 Map-Reduce分布式查询 PostgreSQL嵌入结构查询引擎,快速检索    

一篇文章让你通透Hive优化

☆樱花仙子☆ 提交于 2020-05-06 20:17:14
Hive优化 一、hive参数优化 1、map数优化 2、reduce数优化 3、Fetch抓取(Hive可以避免进行MapReduce) 4 、模式选择  1)本地模式  2)并行模式  3)严格模式 5、JVM重用 6、推测执行 7、并行执行 8、合并小文件 二、hive压缩存储优化 1、压缩优化  1)压缩原因  2)压缩方式  3)压缩方式的选择  4)压缩的使用 2、存储优化  1)存储格式 三、hive表设计优化 1、内部表 & 外部表 2、分区  1)静态分区  2)动态分区 3、分桶 四、SQL优化 1、小表join大表 2、大表join大表  1)空key过滤  2)空key转换 3、mapjoin 4、group by 5、笛卡尔积 6、count(distinct)去重统计 7、行列过滤 8、排序选择 9、查看sql的执行计划(Explain) 五、数据倾斜 一、hive参数优化 1、map数优化 mapred.min.split.size: 指的是数据的最小分割单元大小;min的默认值是1B mapred.max.split.size: 指的是数据的最大分割单元大小;max的默认值是256MB 通过调整max可以起到调整map数的作用,减小max可以增加map数,增大max可以减少map数。 需要提醒的是,直接调整mapred.map

Hadoop 伪分布式运行模式

╄→尐↘猪︶ㄣ 提交于 2020-05-06 09:17:42
3 Hadoop 伪分布式运行模式 3.1 启动HDFS 并运行 MapReduce 程序 3.1.1 分析 (1)配置集群 (2)启动、测试集群增、删、查 (3)执行WordCount案例 3.1.2 执行步骤 3.1.2.1 配置集群 3.1.2.1.1 配置 hadoop-env.sh [atlingtree@hadoop100 hadoop-2.9.2]$ cd etc/hadoop/ [atlingtree@hadoop100 hadoop]$ vim hadoop-env.sh 将文件中的JAVA_HOME修改成对应的位置,保存退出。 3.1.2.1.2 配置core-site.xml [atlingtree@hadoop100 hadoop]$ vim core-site.xml 添加如下配置: <!-- 指定HDFS中NameNode的地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop100:9000</value> </property> <!-- 指定Hadoop运行时产生文件的存储目录 --> <property> <name>hadoop.tmp.dir</name> <value>/opt/module/hadoop-2.9.2/data/tmp</value> <

Hive 学习(六) Hive之常用内置函数一

岁酱吖の 提交于 2020-05-06 01:15:53
一,引言 二,类型转换函数 三,数学运算函数    3.1 四舍五入(round())    3.2 向上取整(ceil())    3.3 向下取整(floor())    3.4 取绝对值(abs())    3.5 求单行数据最小值(least())    3.6 求单行数据最大值(greatest()) 四,字符串函数    4.1 字符串截取(substr)    4.2 字符串拼接(concat和concat_ws)    4.3 字符串长度(length)    4.4 字符串分割(split)    4.5 大小写转换(upper|lower) 五,时间函数    5.1 时间获取(current_timestamp)    5.2 日期获取(current_date)    5.3 时间戳获取(unix_timestamp)    5.4 时间转换 正文 一,引言   在查询数据的时候,往往需要我们对数据进行清洗和处理,而HSQL提供了很多函数方便我们使用,其实很多函数和普通的SQL是一样的,接下来我们对常用的函数进行分析。 二,类型转换函数   语法结构: cast (源数据 as 目标数据类型) -- >注意数据类型必须可以进行相互转换,类似于java的强转   示例: -- >字符串转换成整型 hive > select cast ( ' 1 ' as

[Hive]-常规优化以及执行计划解析

不打扰是莪最后的温柔 提交于 2020-05-05 21:35:45
1.HiveSQL优化    1.1 中心思想     这里以Hive On MapReduce 为例,Hive On Spark等思路也是一致的.     HiveSQL会最终转化为MapReduce进行执行,那么优化的前提是至少对MapReduce有基本的了解     其次是必须了解HiveSQL会转化成怎么样的MapReduce作业(执行计划),这是优化HiveSQL根本依据.切记,HiveSQL的优化本质是对MapReduce作业的优化.     比如MapReduce的一些特点:       数据读取和写入,都是针对HDFS(磁盘)而言,都是IO操作       不喜欢某一个任务过大(数据倾斜).一个经典的结论:数据量不是问题,数据倾斜才是       不喜欢大量过小的任务.任务资源申请等本身初始化和管理也是需要消耗时间和资源得.大量过小任务,导致时间和资源都花在任务维护上了     所以在HiveSQL上,也是针对这些特点来进行优化    1.2 一些常见的优化思路      1.2.1 IO         只查询需要的列 .MapReduce会根据查询谓词裁剪列,简单说就是不查询的列不读,这样可以降低IO        尽可能的使用表分区 .表分区条件后,MapReduce会直接跳过不需要的分区的全部文件,极大的降低IO      1.2.2 数据倾斜       

什么是大数据计算服务MaxCompute

橙三吉。 提交于 2020-05-05 12:11:32
大数据计算服务 (MaxCompute,原名ODPS)是一种快速、完全托管的EB级数据仓库解决方案。 当今社会数据收集手段不断丰富,行业数据大量积累,数据规模已增长到了传统软件行业无法承载的海量数据(百TB、PB、EB)级别。MaxCompute致力于批量结构化数据的存储和计算,提供海量数据仓库的解决方案及分析建模服务。 由于单台服务器的处理能力有限,海量数据的分析需要分布式计算模型。分布式的计算模型对数据分析人员要求较高且不易维护。数据分析人员不仅需要了解业务需求,同时还需要熟悉底层分布式计算模型。MaxCompute为您提供完善的数据导入方案以及多种经典的分布式计算模型,您可以不必关心分布式计算和维护细节,便可轻松完成大数据分析。 目前,MaxCompute服务已覆盖全球16个国家和地区,客户遍及金融、互联网、生物医疗、能源、交通、传媒等行业,为全球用户提供海量数据存储和计算服务。MaxCompute的多个客户案例荣获“2017大数据优秀产品和应用解决方案案例”奖。此外,MaxCompute、DataWorks以及AnalyticDB代表阿里云入选了Forrester Wave™ Q4 2018云数据仓库报告。 MaxCompute视频简介 产品优势 大规模计算存储 MaxCompute适用于100GB以上规模的存储及计算需求,最大可达EB级别。 多种计算模型