CN109062551A - 基于大数据开发命令集的开发框架 - Google Patents
基于大数据开发命令集的开发框架 Download PDFInfo
- Publication number
- CN109062551A CN109062551A CN201810894669.8A CN201810894669A CN109062551A CN 109062551 A CN109062551 A CN 109062551A CN 201810894669 A CN201810894669 A CN 201810894669A CN 109062551 A CN109062551 A CN 109062551A
- Authority
- CN
- China
- Prior art keywords
- string
- data
- subelement
- host
- hostip
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种基于大数据开发命令集的开发框架,其包括:将大数据开发中应用程序、指令中通用的、重复使用的基础代码、算法封装为类库;获取开发人员调用类的名称;根据开发人员调用类的名称,将开发大数据相关应用程序、指令以类库中类的方式反馈给开发人员。本发明能够实现降低大数据的学习门槛,降低开发难度,提高大数据项目的开发效率。
Description
技术领域
本发明涉及大数据开发命令集技术领域,特别涉及一种基于大数据开发命令集的开发框架。
背景技术
大数据的应用开发过于偏向底层,具有学习难度大,涉及技术面广的问题,这制约了大数据的普及。现有技术中的大数据项目开发效率低,基础代码、算法重复使用率不高。
发明内容
有鉴于此,本发明提出一种能够降低大数据的学习门槛,降低开发难度,提高大数据项目的开发效率的基于大数据开发命令集的开发框架。
一种基于大数据开发命令集的开发框架,其包括:
将大数据开发中应用程序、指令中通用的、重复使用的基础代码、算法封装为类库;
获取开发人员调用类的名称;
根据开发人员调用类的名称,将开发大数据相关应用程序、指令以类库中类的方式反馈给开发人员。
在本发明所述的基于大数据开发命令集的开发框架中,
所述类库为开放式结构,并在类库中预留新增类的接口。
在本发明所述的基于大数据开发命令集的开发框架中,所述类库包括:
数据源与SQL引擎模块:实现关系型数据库、本地文件与大数据平台非关系型数据库之间的数据导入导出,以及实现SQL引擎功能;
数据采集模块:实现采集互联网、关系型数据库、本地文件中的数据,并将其存储至大数据平台;
数据处理模块:实现根据用户的需求对大数据平台里的数据清洗成规定的格式并进行统计、分析;
机器学习算法模块:实现分析大数据平台内数据之间的关联、数据的分类、以及根据数据之间已有的关联分析新的数据关系;
自然语言处理模块:实现大数据平台中数据中自然语言的处理工作包括进行文章摘要,语义判别以及提高内容检索的精度及有效性;
搜索引擎模块:实现根据用户的请求提供数据检索服务,并将检索结果展示给用户。
实施本发明提供的基于大数据开发命令集的开发框架归类、命令集方法与现有技术相比具有以下有益效果:通过由数据采集模块将数据采集进入大数据平台的系统,数据要求尽量完全, 这项工作是大数据的基本,使得系统成为有源之水,数据的来源可以来自多个 传统数据库系统、互联网、本地文件等多种途径;数据进入大数据平台的系统后,可以根据用户的需要进行再次选择,这包括规模的选择 、维度的选取,得到与用户需求相关的数据子集,使用数据处理模块进行工作;(3)数据处理之后,大数据平台的系统便可以对外提供服务,比如搜索、条件查询等,使用数据源与SQL引擎和搜索引擎模块进行工作,产生数据服务价值;(4)用户的需求不仅是搜索查询,还需要进行分析数据之间的关联、数据的分类、需要从数据中分析出新的数据关系,比如人群分类、好友推荐、搜索排名 、相关性分析等等,这使用机器学习算法模块进行一系列的处理,产生数据分析价值;(5)由于中文处理的特殊性,需要对数据中的汉字进行分词、摘要、关键词提 取、情感分析、新词发现、文章正负面判断等等处理,这些需求使用自然语言处理模块进行工作,产生数据分析价值。
附图说明
图1是本发明实施例的基于大数据开发命令集的开发框架结构框图;
图2是图1中数据源与SQL引擎模块的子结构框图;
图3是图1中数据采集模块的子结构框图;
图4是图1中数据处理模块的子结构框图;
图5是图1中机器学习算法模块的子结构框图;
图6是图1中自然语言处理模块的子结构框图;
图7是图1中搜索引擎模块的子结构框图。
具体实施方式
如图1-7所述,为本发明实施例提供的一种基于大数据开发命令集的开发框架结构框图。
以下通过更为具体的实施例对本发明的原理进行进一步解释:
大数据开发命令集概念
大数据的应用开发过于偏向底层,具有学习难度大,涉及技术面广的问题,这制约了大数据的普及。大快认为,需要一种技术,把大数据开发中一些通用的,重复使用的基础代码、算法封装为类库,用户通过调用类的名称,就可以直接开发大数据相关应用程序,指令以类的方式提供给开发人员。
这些指令集具有:降低大数据的学习门槛,降低开发难度,提高大数据项目的开发效率。该命令集的分类方法,以及方法的使用方式,是汤连杰和孙燕群独创,并命名为FreeRCH。
该命令集亦会增加新的类(指令)。
框架的构成模块
框架由:数据源与SQL引擎、数据采集(自定义爬虫)模块、数据处理模块、机器学习算法、自然语言处理模块、搜索引擎模块,六部分组成。
大快的大数据通用计算平台(DKH),已经集成相同版本号的开发框架的全部组件。如果在开源大数据框架上部署大快的开发框架,需要平台的组件支持如下:
数据源与SQL引擎:DK.Hadoop、spark、hive、sqoop、flume、kafka
数据采集:DK.hadoop
数据处理模块:DK.Hadoop、spark、storm、hive
机器学习和AI:DK.Hadoop、spark
NLP模块:上传服务器端JAR包,直接支持
搜索引擎模块:不独立发布
数据源与SQL引擎
本部分介绍数据与大数据平台之间的导入导出,通常所说的数据源主要有四大类:结构(SQL)数据,文件、日志数据,实时流数据,互联网数据。这些数据的存在方式有两种:存在数据库中或者本地文件中,根据文中所讲解的方法,只要将数据和平台之间的参数一一对应正确,就可以完成数据与平台间的导入导出工作。
关系型数据库(SQL数据库)与大数据平台之间的数据导入导出
本部分将一些外部数据源导入大数据平台或者反向导出。外部数据源支持:Oracle数据库、mySQL数据库、SQLServer数据库。
关系型数据库的优势:
1. 保持数据的一致性(事务处理)
2.由于以标准化为前提,数据更新的开销很小(相同的字段基本上都只有一处)
3. 可以进行Join等复杂查询。
其中能够保持数据的一致性是关系型数据库的最大优势。
关系型数据库的不足:
1. 大量数据的写入处理
2. 为有数据更新的表做索引或表结构(schema)变更
3. 字段不固定时应用
4. 对简单查询需要快速返回结果的处理
非关系型数据库对于这关系型数据库和非关系型数据库,对方的优势就是自己的弱势,反之亦然。
面对数据库高并发读写的需求,海量数据的高校存储和访问的需求,数据库的高扩展性和高可用性的需求,大数据平台NOSQL数据库可以高效解决以上需求。
将海量数据从SQL数据库导入到NOSQL数据库时,以便后期将数据进行数据检索,数据抓取,数据清洗,自然语言处理,机器学习等等。或者将NOSQL数据库里数据导出到SQL数据库时,需要用到我们的工具类DKTransformationData。
工具类名称:DKTransformationData
从数据库某个表导入数据到NOSQL
方法签名:String db2nosql(String jdbcStr,String uName,String pwd,StringtbName,String whereStr,String dirName,String writeMode,String threadNum,String hostIp,String hostName,String hostPassword);
返回:空—正确,非空:错误信息
签名参数说明:jdbcStr,uName,pwd,tbName,whereStr分别为jdbc连接串,用户名,密码,表名,条件串,dirName:输出目录名,writeMode :0 表示覆盖,1表示增量,threadNum:表示启用的线程数(线程数不能大于符合条件的记录数,一般建议与节点数量相同,如果该表中没有主键,则线程数为1),hostIp:要连接主机的ip地址,hostName:要连接主机的用户名,hostPassword:要连接主机的密码(要具备执行Hadoop的权限的用户)。
范例:把mysql数据库中名称为db的表中的数据导入到大数据平台的“/user/root/dk”目录下,可以用db2nosql方法进行数据的导入。
从NOSQL导出数据到关系型数据库
方法签名:String nosql2Rdbms(String jdbcStr,String uName,String pwd,StringtbName,String exportDir,String threadNum,String hostIp,String hostName,StringhostPassword)
返回:空—正确,非空:错误信息。
签名参数说明:jdbcStr,uName,pwd,tbName分别为jdbc连接串,用户名,密码,表名,exportDir:要从hdfs导出的目录,threadNum:表示启用的线程数(一般建议与节点数量相同),hostIp:要连接主机的ip地址,hostName:要连接主机的用户名,hostPassword:要连接主机的密码(要具备执行Hadoop的权限的用户)。
说明:关系型数据库表要存在并且字段数量与导入数据字段数量相匹配。
范例:把“/user/root/dk”目录下的数据导出到mysql数据库的一张表中,首先要确保这个表存在,且数据字段与表中的字段一一对应。如上面db2nosql方法导出到大数据平台的数据为例,我们要先在数据库中建立和db表相同表结构的一张表,才能进行数据的导入。
本地文件与大数据平台之间导入导出
本部分将本地文件导入大数据平台或者反向导出。导入的文件类型为:TXT、DOC、PDF类型文件。导出的文件为TXT类型。
我们工作中经常会遇到大量数据表格,有pdf 文档,excel 文档 , word 文档和文本文件。当我们面对大量数据做一些基本的处理分析时,手动处理显然耗时耗力,如对本地文件数据进行数据检索,数据抓取,数据清洗,自然语言处理,机器学习等等处理时,或大数据平台处理好的数据要导出到本地文件时,需要用到我们的工具类DKTransformationData来将文件与大数据平台之间导入或导出处理。
工具类名称:DKTransformationData
本地文件导入数据到NOSQL
本地文件的导入分为本地文件组和单个文件两类型。
(1)本地文件组导入数据到NOSQL(文件类型为 TXT、DOC、PDF)
方法签名:String file2nosql(String filePath,String dirName,StringnosqlUrl,int fileLength);
返回:空—正确,错误抛出异常
签名参数说明:filePath分别为本地文件目录(包括文件名,如果不写文件名,则导入目录中全部文件),dirName:输出目录名(包括文件名),nosqlUrl为连接hdfs的地址及端口(hdfs://namenode-ip地址:8020),fileLength文件长度限制(K为单位。文件存为SequenceFile格式(二进制格式))。
范例:要将本地"C:\\Users\\Administrator\\Desktop\\aaa"文件夹下的TXT、DOC、PDF文件导入到大数据平台中,可以使用file2nosql方法进行导入,最终在大数据平台中存储的格式为SequenceFile格式的文件,如果后期想进行处理需要另行解析。
本地文件导入数据到NOSQL(文件类型为 TXT、DOC、PDF)
方法签名:String file2nosql2(String filePath,String dirName,StringnosqlUrl,int fileLength);
返回:空—正确,错误抛出异常
签名参数说明:filePath为本地文件(包括路径),dirName:输出目录名(包括文件名),nosqlUrl为连接hdfs的地址及端口(hdfs://namenode-ip地址:8020),fileLength文件长度限制(K为单位。文件不能存为SequenceFile格式)。
范例:将本地"C:\\Users\\Administrator\\Desktop\\aaa"文件夹下的单个TXT、DOC或PDF文件导入到大数据平台中,可以使用file2nosql2方法进行导入.
本地文件组导入数据到NOSQL(HBase)
方法签名:String file2hbase(String filePath,String tableName,intfileLength,String zkHostIp) ;
返回:空—正确,错误抛出异常
签名参数说明:filePath为本地文件(包括路径),tableName为hbase的表名称,fileLength文件长度限制(K为单位。),zkHostIp为zookeeper的主机IP。(Zookeeper是为一个分布式应用提供一致性服务的软件,功能:配置维护、域名服务、分布式同步、组服务。)
范例:将本地"C:\\Users\\Administrator\\Desktop\\aaa"文件夹下的所有文件导入到大数据平台的HBASE数据库中,可以使用file2hbase方法实现,使用本方法可以实现特定长度的文件导入。
从NOSQL导出数据到本地文件(文件类型为 TXT)(文件存储目录为单一目录)
方法签名:String nosql2file(String filePath,String exportDir,StringhdfsUrl)
返回:空—正确,错误抛出异常。
签名参数说明:filePath分别为本地文件目录(文件不用命名,系统会自动命名),exportDir:要从nosql导出的目录,hdfsUrl为连接hdfs的地址及端口。
范例:从大数据平台"/user/root/"目录下导出文件,可以使用nosql2file方法把"/user/root/"目录下特定的文件导出到本地指定的目录中。
引擎
本部分主要介绍了连接数据库、建HIVE表和追加HIVE表,当我们有很多张表的时候,要处理表与表之间关联的复杂查询,进行一些基本的增删改查要用到连接NOSQL数据库,做sql类数据的统计分析要将数据放到HIVE表里进行处理。即处理表之间的复杂操作和sql类的数据统计查询要用到SQLUtils工具类。
工具类名称:SQLUtils
连接NOSQL数据库
如果我们要连接大数据平台的nosql类的数据库,可以使用connectionNOSQL方法来进行连接,做我们需要的SQL查询。
方法签名:Connection connectionNOSQL(String hostIP,String port,Stringusername,String password,String jdbcDriverName);
返回:正确-返回Connection连接,错误抛出异常。
签名参数说明:hostIP为nosql所在节点的ip;port为hive的端口;username为连接hive的用户名;password为密码;jdbcDriverName为连接nosql的驱动URL串。
建立HIVE数据表
利用createTable方法可以在hive中建立我们想要的特定格式的数据表,如同在普通关系数据库(mysql)中一样。
方法签名:boolean createTable(Connection con,String sql,StringoptStr)。
返回:true—成功,false—失败。
签名参数说明:con,sql,optStr分别为JDBC Connection连接,标准的sql建表语句(末尾不加分号),每行字段间的分隔符。
追加HIVE数据表
利用loadData方法可以将Linux平台中指定目录中符合格式的数据,导入到指定的hive表中,值得注意的是数据格式要和创建表时指定的格式相同,否则数据会丢失。
方法签名:boolean loadData(Connection con,String filePath,StringtableName)。
返回:true—成功,false—失败。
签名参数说明:con,filePath,tableName分别为JDBC Connection连接,数据在nosql上的路径地址(包含文件名),nosql的表名。
连接好数据库后,其余操作和操作关系型数据库一致。 (其余操作参见JDBCapi)。
相同键值或记录会造成重复,因此在导入前请区分。
范例:连接大数据平台的NOSQL数据库,建立一张名为tb1的hive表,将符合格式的数据追加到此hive表中。
HIVE的特点
Hive 是一种底层封装了Hadoop 的数据仓库处理工具,使用类SQL 的HiveQL 语言实现数据查询,所有Hive 的数据都存储在Hadoop 兼容的文件系统中。Hive 在加载数据过程中不会对数据进行任何的修改,只是将数据移动到HDFS 中Hive 设定的目录下,因此,Hive不支持对数据的改写和添加,所有的数据都是在加载的时候确定的。Hive 的设计特点如下:
● 支持索引,加快数据查询。
● 不同的存储类型,例如,纯文本文件、HBase 中的文件。
● 将元数据保存在关系数据库中,大大减少了在查询过程中执行语义检查的时间。
● 可以直接使用存储在Hadoop 文件系统中的数据。
● 内置大量用户函数UDF 来操作时间、字符串和其他的数据挖掘工具,支持用户扩展UDF 函数来完成内置函数无法实现的操作。
● 类SQL 的查询方式,将SQL 查询转换为MapReduce 的job 在Hadoop集群上执行。
数据采集
网络爬虫是一个自动提取网页的程序,从一个或若干初始网页的URL开始,根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。
本部分使用网络爬虫进行数据采集,大家都知道很多网页都是用模板或一定规律的代码生成,有相同的标签或相同ID,我们想采集众多有相同特点的网页信息时,就可以设定一定的抓取规则,从而满足规则的网页信息就可以采集下来,以多种方式进行存储,一个任务下可以抓取一个网址或多个网址下的内容。58同城数据,淘宝商家数据,京东数据,新浪新闻数据等与我们工作生活相关的各大网站数据可以用工具类DKCrawler抓取下来为我们所用。
工具类名称:DKCrawler
创建用户
在使用网络爬虫采集数据之前先创建爬虫用户。
方法签名:int regUser(String uName,String password);
返回: -1参数错误,-2系统错误,-3此时注册太多,0注册成功,1用户已存在。
签名参数说明:uName:用户邮箱,password:初始密码
范例:创建用户名为admin,密码为123456的用户。
修改用户密码
调用此方法爬虫用户可以修改登录密码。
方法签名:int changeUserPwd(String uName,String oldPassword,StringnewPassword);
返回:-1参数错误,-2系统错误,-3用户不存在,0修改成功。
签名参数说明:uName:用户邮箱。oldPassword:用户旧密码。newPassword:用户新密码。
范例:将用户密码123456改为654321.
获得用户ID(corID)
调用此方法爬虫用户可以获得用户唯一标识。
方法签名:String getCorID(String uName);
返回:-1参数错误,-2系统错误,-3 corID不存在,其它 corID。
签名参数说明:uName:用户自定义的名称。
范例:获取用户ID,一个16位数字,运行后如“1605121747381597”。
创建任务
调用此方法创建爬虫任务。
方法签名:String createTask(String uName,String xmlFilePath);
返回:-1初始化参数错误,-2系统错误,0创建任务成功 。
签名参数说明:
uName:用户名称,xmlFilePath:任务参数xml文件(含路径)
xmlFilePath文件格式:
<xml version="1.0">
<配置>
<索引服务器IP>xxx</索引服务器IP>
<索引服务器端口>xxx</索引服务器端口>
<索引名称>xxx</索引名称>
<类型名称>xxx</类型名称>
<任务名>xxx</任务名>
<抓取层数>xxx</抓取层数>
<抓取时间间隔>xxx</抓取时间间隔>
<url组>
<url元素>
<url>http://....</url>
<层组>
<层>
<层数>xxx</层数>
<本层是否保存>是[否]</本层是否保存>
<本层是否列表页>是[否]</本层是否列表页>
<列表页url前部>xxx</列表页url前部>
<列表页url后部>xxx</列表页url后部>
<列表页起始值>xxx</列表页起始值>
<列表页步进值>xxx</列表页步进值>
<列表页页数>xxx</列表页页数>
<链接过滤>
<是否过滤>是[否]</是否过滤>
<过滤方式>关键字[正则]</过滤方式>
<包含>xxx xxx xxx</包含>
<不包含>xxx xxx xxx</不包含>
</链接过滤>
<内容过滤>
<是否过滤>是[否]</是否过滤>
<过滤方式>关键字[正则]</过滤方式>
<包含>xxx xxx xxx</包含>
<不包含>xxx xxx xxx</不包含>
</内容过滤>
<是否按元素抓取>是[否]</是否按元素抓取>
<抓取元素组>
<抓取元素>
<自定义名称>xxx</自定义名称>
<定位标签>xxx</定位标签>
<定位标签属性>xxx</定位标签属性>
<抓取标签>xxx</定位标签>
<抓取标签属性 >xxx</定位标签属性>
<起始计数>xxx</定位标签>
<抓取数量>xxx</定位标签属性>
</抓取元素>
</抓取元素组>
</层>
</层组>
</url元素>
</url组>
</配置>
范例:一用户把设置规则在我们提供的.xml文件模板内填好,命名为mytask.xml文件,然后放在D盘。方法中写好路径就可以创建任务。
获得任务ID(taskID)
调用此方法爬虫用户可以获得指定任务名的唯一标识
方法签名:String getTaskID(String uName,String taskName);
返回:-1参数错误,-2系统错误,-3不存在,其他 tasked.
签名参数说明:uName:用户名称,taskName:任务名称.
范例:一个用户获取其中一个任务的ID,一个16位数字,运行后如“1606071655185983”。
启动任务
调用此方法启动爬虫任务。
方法签名:int runTask(String corID,String taskID);
返回:-1参数错误,-2系统错误,0成功 。
签名参数说明:corID:用户ID,taskID:任务ID。
范例:一个用户ID为1605121747381597,任务ID为1606071655185983的任务,任务设置好,启动任务过程。
停止任务
调用此方法停止爬虫任务。
方法签名:int stopTask(String corID,String taskID);
返回:-1参数错误,-2系统错误,0成功。
签名参数说明:corID:用户ID,taskID:任务ID。
范例:一个用户ID为1605121747381597,任务ID为1606071655185983的任务,任务启动后,停止任务过程。
删除任务
调用此方法删除爬虫任务。
方法签名:int delTask(String corID,String taskID);
返回:-1参数错误,-2系统错误,-3任务不存在,-4正在运行不能删除,0成功。
签名参数说明:corID:用户ID,taskID:任务ID。
范例:一个用户ID为1605121747381597,任务ID为1606071655185983的任务,删除任务过程。
获得某任务采集数量
调用此方法获得爬虫任务当前采集的记录数。
方法签名:long recSum(String corID,String taskID);
返回:记录数量。
签名参数说明:corID:用户ID,taskID:任务ID。
范例:一个用户ID为1605121747381597,任务ID为1606071655185983的任务,任务运行完后,运行结果的条数。
获得爬虫采集数据(json格式)
调用此方法获得爬虫任务当前采集的记录,以json格式返回。
方法签名:String getCrwJsonData(String corID,String taskID,Stringfrom,String size);
返回:json数据。
签名参数说明:corID:用户ID,taskID:任务ID,from:记录偏移,size:记录数。
范例:一个用户ID为1605121747381597,任务ID为1606071655185983的任务,设置抓取规则后,获取运行结果中从0到10条json格式的数据结果。
获取爬虫采集元素数据(json格式)
调用此方法获得爬虫任务当前采集的记录,以json格式返回。
方法签名:String getCrwJsonDataFeilds(String corID,String taskID,String from,String size,String fields[]);
返回:json数据。
签名参数说明:corID:用户ID,taskID:任务ID,from:记录偏移,size:记录数 ,fields元数据字段数组。
范例:一个用户ID为1605121747381597,任务ID为1606071655185983的任务,设置了抓取规则,获取运行结果中从0到10条json格式的数据带字段“标题”和“价格”的结果。
获得爬虫采集元素数据(txt格式)
调用此方法获得爬虫任务当前采集的记录,以txt格式返回。
方法签名:String getCrwTextDataFeilds (String corID,String taskID,String from,String size,String fields[]);
返回:TXT数据(字段以半角逗号分隔).
签名参数说明:corID:用户ID,taskID:任务ID,from:记录偏移,size:记录数,fields元数据字段数组。
范例:一个用户ID为1605121747381597,任务ID为1606071655185983的任务,设置了抓取规则,获取运行结果中从0到10条txt格式的数据带字段“标题”和“价格”的结果。
数据处理
数据处理是对数据的采集、存储、检索、加工、变换和传输。数据处理的基本目的是从大量的、可能是杂乱无章的、难以理解的数据中抽取并推导出对于某些特定的人们来说是有价值、有意义的数据。保证数据质量问题。
数据处理是系统工程和自动控制的基本环节。数据处理贯穿于社会生产和社会生活的各个领域。数据处理技术的发展及其应用的广度和深度,极大地影响着人类社会发展的进程。
数据清洗
本部分将大数据平台里的数据清洗成规定的格式,以方便分析之用。当我们想把数据进行筛选、过滤等处理,得到我们想要的有价值的数据时要用到DKDataFiling工具类。
工具类名称:DKDataFiling
规范记录
调用此方法可以将不合法的记录去除掉。
方法签名:formatRec(String spStr, int fdSum, String srcDirName,StringdstDirName, String hostIp, String hostPort, String hostName,StringhostPassword)
返回:空—正确,非空:错误信息。
签名参数说明:spStr分隔符号,
fdSum:字段数量(不符合该数量的记录将被清除),
srcDirName:源目录名,
dstDirName输出目录名,输出目录如果存在将会覆盖
hostIp:要连接hiveserver主机的ip地址.
hostPort:hiveserver的端口,默认10000
hostName:要连接主机的用户名,
hostPassword:要连接主机的密码(要具备执行Hadoop的权限的用户)。
范例:1年级,2班级,3姓名,4性别,5科目,6成绩,7家长姓名,8联系方式共8列数据,之间以逗号分隔。不足8列的数据为不合法数据,应用formatRec可将不合法数据过滤掉,只筛选出合法数据。
规范字段
调用此方法可以按关键字过滤出想要的字段。
方法签名:formatField(String spStr, int fdSum,String fdNum, StringregExStr, String srcDirName,String dstDirName, String hostIp, StringhostPort, String hostName, String hostPassword)
返回:空—正确,非空:错误信息
签名参数说明:spStr分隔符号,
fdSum:字段数量
fdNum:字段序号(检查哪个字段是否符合正则,0为全部检查),可为一个或多个,多个之间用逗号分隔(1,2,3...)
regExStr:字段中包含该字符的记录将被剔除(a,b,c),与字段序号相对应,多个字段时每个字段都符合相应正则的记录将被剔除
srcDirName:源目录名,
dstDirName输出目录名,输出目录如果存在将会覆盖
hostIp:要连接hiveserver主机的ip地址,
hostPort:hiveserver的端口,默认10000
hostName:要连接主机的用户名,
hostPassword:要连接主机的密码(要具备执行Hadoop的权限的用户)。
范例:1年级,2班级,3姓名,4性别,5科目,6成绩,7家长姓名,8联系方式共8列数据,之间以逗号分隔。学生数据中查看除了一年级之外其他年级的成绩,可以用formatField将一年级的数据过滤掉。
筛选字段
调用此方法可以从所有字段中筛选出想要的几个字段数据。
方法签名:selectField(String spStr, int fdSum,String fdNum, StringsrcDirName,String dstDirName, String hostIp, String hostPort, StringhostName,String hostPassword)
返回:空—正确,非空:错误信息
签名参数说明:spStr分隔符号,
fdSum:字段数量
fdNum:字段数组(整数数组,内容是要保留的字段序号,没有编号的字段将去除),输入格式:逗号分隔的数字(1,2,3...)
srcDirName:源目录名,
dstDirName输出目录名,输出目录如果存在将会覆盖
hostIp:要连接hiveserver主机的ip地址,
hostPort:hiveserver的端口,默认10000
hostName:要连接主机的用户名,
hostPassword:要连接主机的密码(要具备执行Hadoop的权限的用户)。
范例:1年级,2班级,3姓名,4性别,5科目,6成绩,7家长姓名,8联系方式共8列数据,之间以逗号分隔。学生数据中查看学生姓名及其家长姓名及联系方式,可用selectField只筛选出想查看的列中的信息。
筛选记录
调用此方法可以筛选出符合条件的记录条数。
方法签名:selectRec(String spStr, int fdSum, String whereStr, StringsrcDirName,String dstDirName, String hostIp, String hostPort, StringhostName, String hostPassword)。
返回:空—正确,非空:错误信息。
签名参数说明:spStr分隔符号,
fdSum:字段数量
whereStr:比较条件 f1 >= 2 and (f2=3 or f3=4),f1为第一个字段
srcDirName:源目录名,
dstDirName输出目录名,输出目录如果存在将会覆盖
hostIp:要连接hiveserver主机的ip地址,
hostPort:hiveserver的端口,默认10000
hostName:要连接主机的用户名,
hostPassword:要连接主机的密码(要具备执行Hadoop的权限的用户)。
范例:1年级,2班级,3姓名,4性别,5科目,6成绩,7家长姓名,8联系方式共8列数据,之间以逗号分隔。学生数据中查看语文成绩小于60分的学生信息,可用selectRec限定条件进行筛选。
数据去重
该方法可筛选出不同的数据或字段。
方法签名:dedup(String spStr, int fdSum, String srcDirName,StringdstDirName, String hostIp, String hostPort, String hostName, StringhostPassword)
返回:空—正确,非空:错误信息
签名参数说明:spStr分隔符号,
fdNum:字段数组(去重的字段,0为整条记录,输入格式:0或逗号分隔的数字(1,2,3...)
srcDirName:源目录名,
dstDirName输出目录名,输出目录如果存在将会覆盖
hostIp:要连接hiveserver主机的ip地址,
hostPort:hiveserver的端口,默认10000
hostName:要连接主机的用户名,
hostPassword:要连接主机的密码(要具备执行Hadoop的权限的用户)。
范例:1年级,2班级,3姓名,4性别,5科目,6成绩,7家长姓名,8联系方式共8列数据,之间以逗号分隔。学生数据中的科目去重,可用dedupe进行筛选。
数据统计
本部分将大数据平台里的数据进行统计。比如我们经常会对大量数据进行求平均值,求总数,求平方根,各种数学计算等都用到我们的DKStatistic工具类。
工具类名称:DKStatistic
算数计算
该方法可对某字段取最大值、最小值、求和、计算平均值。
方法签名:long count(String fun, int fdSum, String spStr, int fdNum,String dirName, String hostIp, String hostPort, String hostName, StringhostPassword)
返回:计算结果。
签名参数说明:fun:功能avg,min,max,sum,
fdSum:字段数量
spStr分隔符号,
fdNum:字段编号,
dirName:目录名
hostIp:要连接hiveserver主机的ip地址,
hostPort:hiveserver的端口,默认10000
hostName:要连接主机的用户名,
hostPassword:要连接主机的密码(要具备执行Hadoop的权限的用户)。
范例:1年级,2班级,3姓名,4性别,5科目,6成绩,7家长姓名,8联系方式共8列数据,之间以逗号分隔。学生数据中求所有成绩的平均值可用DKStatistic.count中的avg功能。
计算记录数
该方法可计算某字段符合某条件的记录数。
方法签名:long count(String fun, int fdSum, String spStr, int fdNum,String compStr, String whereStr, String dirName, String hostIp, StringhostPort, String hostName, String hostPassword)
返回:记录数量.
签名参数说明:fun:功能count
fdSum:字段数量
spStr分隔符号,
fdNum:字段编号,
compStr:比较符号,>, <, >=, <=, =,!=用法:"'>='"
whereStr:比较条件
dirName:目录名
hostIp:要连接hiveserver主机的ip地址,
hostPort:hiveserver的端口,默认10000
hostName:要连接主机的用户名,
hostPassword:要连接主机的密码(要具备执行Hadoop的权限的用户)。
范例:1年级,2班级,3姓名,4性别,5科目,6成绩,7家长姓名,8联系方式共8列数据,之间以逗号分隔。学生数据中求一年级一共有多少学生可用DKStatistic.count中的count功能。
数据分析
数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。在日常生活中,我们会遇到各种数据,当我们对这些杂乱无章的数据进行统计和分析的时候,可以用到我们的工具类DKAnalysis。
工具类名称:DKAnalysis
分组条件分析
该方法可用于对数据条件筛选分析或分组统计分析。
方法签名: analyse(String spStr, int fdSum, String whereStr, StringgroupStr, String srcDirName, String dstDirName, String hostIp, StringhostPort, String hostName, String hostPassword)
返回:空—正确,非空:错误信息
签名参数说明: spStr:分隔符号
fdSum:字段数量
whereStr:筛选条件,如:"\"f1='T100'\"",若无请写1=1
groupStr:分组条件,如:"f1",若无请写1
srcDirName:文件所在目录
dstDirName:数据所在目录
hostIp:要连接hiveserver主机的ip地址,
hostPort:hiveserver的端口,默认10000
hostName:要连接主机的用户名,
hostPassword:要连接主机的密码(要具备执行Hadoop的权限的用户)。
范例:1年级,2班级,3姓名,4性别,5科目,6成绩,7家长姓名,8联系方式共8列数据,之间以逗号分隔。(1)学生数据中分组统计男生女生各有多少人。(2)学生数据中分组统计一年级学生中男生女生各有多少人。
关联分析--频繁二项集
该方法可分析某两种物品同时出现的频率。
方法签名:apriori2(String spStr, int fdSum, String pNum, String oNum,String whereStr, String srcDirName, String dstDirName, String hostIp, StringhostPort, String hostName, String hostPassword)
返回:空—正确,非空:错误信息
签名参数说明: spStr:分隔符号
fdSum:字段数量
pNum:要分析的物品所在字段
oNum:订单号等所在字段
whereStr:筛选条件,如:"\"f1='T100'\"",若无请写1=1
srcDirName:文件所在目录
dstDirName:数据所在目录
hostIp:要连接hiveserver主机的ip地址,
hostPort:hiveserver的端口,默认10000
hostName:要连接主机的用户名,
hostPassword:要连接主机的密码(要具备执行Hadoop的权限的用户)。
范例:如有商品订单数据,分析同时购买的两种商品出现的概率。f1为订单号字段,f2为商品字段。
关联分析--频繁三项集
该方法可分析某三种物品同时出现的频率。
方法签名: apriori3(String spStr, int fdSum, String pNum, String oNum,String whereStr, String srcDirName, String dstDirName, String hostIp, StringhostPort, String hostName, String hostPassword)
返回:空—正确,非空:错误信息
签名参数说明: spStr:分隔符号
fdSum:字段数量
pNum:要分析的物品所在字段
oNum:订单号等所在字段
whereStr:筛选条件,如:"\"f1='T100'\"",若无请写1=1
srcDirName:文件所在目录
dstDirName:数据所在目录
hostIp:要连接hiveserver主机的ip地址,
hostPort:hiveserver的端口,默认10000
hostName:要连接主机的用户名,
hostPassword:要连接主机的密码(要具备执行Hadoop的权限的用户)。
范例:如有商品订单数据,分析同时购买的三种商品出现的概率。f1为订单号字段,f2为商品字段。
数据分析场景中的算法应用
分类
对用户或者物品进行分类预测,可参照:LR (逻辑回归)、Random Forest(随机森林)、SVM(支持向量机)、Naive Bayes(朴素贝叶斯)。
聚类
对用户或物品进行聚类分析,可参照: K-means(K均值)、Gaussian Mixtures(高斯混合模型)。
关联分析
“购物篮分析”:一群用户购买了很多产品之后,哪些产品同时购买的几率比较高,买了A产品的同时买哪个产品的几率比较高,可参照:FP-growth。
推荐
推荐系统的构建,可参照:ALS。
搜索引擎
搜索引擎(Search Engine,SE)是指根据一定的策略、运用特定的计算机程序从互联网上搜集信息,在对信息进行组织和处理后,为用户提供检索服务,将用户检索相关的信息展示给用户的系统。
搜索引擎类库是由大快开发的大快一体化数据平台中的组件,用户可以通过该模块调用相应的方法实现建立、操作搜索引擎。
数据导入搜索引擎
本部分将用户的数据导入搜索引擎。外部数据源为:NOSQL大数据平台数据。
所以如果你有大量的数据,并对这些数据做查询,聚合等大数据方面的处理,必须先导入到NOSQL数据库中,然后在从NOSQL里面导入到搜索引擎中。
工具类名称:DKSerachInput
NOSQL大数据平台内数据导入搜索引擎
把大数据平台内指定的数据导入到搜索引擎以提供更快的搜索服务,可以使用hdfs2ES方法,把指定文件夹中的数据,导入到指定索引指定的类型下面。
方法签名:String hdfs2ES(String nosqlUrl, String dirName,StringhostIp,String indexName,String typeName,int port,int length);
返回:空—正确,错误抛出异常
签名参数说明:nosqlUrl,dirName分别为连接hdfs的地址及端口(hdfs://namenode-ip地址:8020),nosql上的目录地址,hostIp:要连接搜索主机的ip地址,indexName搜索引擎的索引名称(自定义),typeName搜索引擎的类型名称(自定义),port搜索引擎的端口号,fileLength文件长度限制(K为单位。文件不能存为SequenceFile格式)。
范例:我们想把"/user/root/file2nosql2"中的数据导入到索引名为"hdfstoes",类型名为"estype"的搜索引擎中。
文件型数据导入搜索引擎
该方法可以实现过大文件导入指定大小部分,只截取指定大小的文件内容导入到搜索引擎当中。
方法签名:String file2ES(int fileType,String filePath,String hostIp,String indexName,String typeName,int port,int length);
返回:空—正确,错误抛出异常。
签名参数说明:fileType:文件类型(1-txt,2-doc,3-xls,4-pdf),filePath为本地文件所在的目录(可嵌套子目录),hostIp:要连接搜索主机的ip地址,indexName搜索引擎的索引名称(自定义),typeName搜索引擎的类型名称(自定义),port搜索引擎的端口号,fileLength文件长度限制(K为单位。文件不能存为SequenceFile格式)。
范例:把本地文件夹"C:\\Users\\Administrator\\Desktop\\aaa"下,指定类型的文件导入到索引名为"file2es"、类型名为"fileType"的搜索引擎中,可以使用file2ES方法实现。
搜索引擎导出到本地文件
本部分将搜索引擎内数据导出到本地文件。在搜索索引中有大量的数据,你可能只需要其中部分有用的数据,像你只需要某个时间段的数据,包含某个或许某些关键字的数据,等等。具体的数据你可以根据5.3中的方法获得,这样你可以把你想要的数据导出到本地,可以是txt格式,也可以是excel文档。
工具类名称:DKSerachOutput
获得搜索引擎数据记录数
方法签名:long getESSum(String hostIp,String indexName,String typeName,intport);
返回:记录数量。
签名参数说明:hostIp:要连接搜索主机的ip地址,indexName搜索引擎的索引名称(自定义),typeName搜索引擎的类型名称(自定义,在同一索引下可以将数据分为不同类型),port搜索引擎的端口号。
范例:我们想要获得索引名为"file2es"、类型名为"fileType"的搜索引擎中的记录数可以使用getESSum方法来得到记录数。
搜索引擎数据转为本地txt文件
方法签名:String ES2Txt(String hostIp,String indexName,String typeName,intport,int from,int size);
返回:txt数据(半角英文逗号分隔).
签名参数说明:hostIp:要连接搜索主机的ip地址,indexName搜索引擎的索引名称(自定义),typeName搜索引擎的类型名称(自定义),port搜索引擎的端口号。
from:记录偏移,size:记录数。
范例:把索引名为"file2es"、类型名为"fileType"下的数据导出到本地的txt文件中,可以使用ES2Txt方法来实现。
搜索引擎数据转为本地xls文件
方法签名:String ES2XLS(String hostIp,String indexName,String typeName,intport,int from,int size);
返回:excel表格.
签名参数说明:hostIp:要连接搜索主机的ip地址,indexName搜索引擎的索引名称(自定义),typeName搜索引擎的类型名称(自定义),port搜索引擎的端口号。
from:记录偏移,size:记录数。
范例:如同ES2Txt方法一样,ES2XLS方法是将指定搜索引擎中的数据导出到本地的excel表格中进行显示。
实时数据导入到搜索引擎及HIVE
实时数据是指来自各客户接触点、交易以及互动对象的大量数据。实时数据流中包含着大量重要价值,足以帮助企业及人员在未来的工作中达成更为理想的结果。数据流能够通过管理数据实时变化迅速建立起形势判断,并帮助企业以最快速度收集来自传感器(包括GPS与温度计等)、摄像头、新闻消息、卫星、股票行情、网络爬虫、服务器日志、Flume、Twitter、传统数据库甚至是Hadoop系统的数据,最终将其转化为能够提升企业业绩的决策工具。本节可以用DKStreamDataService处理实时数据导入ES。
工具类名称:DKStreamDataService
实时数据导入到搜索引擎
方法签名:void streamData2Es(String indexName,String typeName,StringjsonData)
返回:无(错误打印错误信息)。
签名参数说明:indexName、typeName分别为es的索引名、类型名,jsonData为要存放到es的数据,其数据类型为json对象。
范例:实时数据(json格式)导入到我们的ES.
实时数据导入到HIVE
方法签名:void streamData2Hive(String hiveDirName,String data)
返回:无(错误打印错误信息)。
签名参数说明:hiveDirName为hive的目录名称,data为要存放到hive的数据(其格式要按照指定的格式,在这之前与该数据相符合的hive表要建立好。)。
范例:实时数据导入到HIVE.
用户搜索
本部分用户提交搜索语句,后台将返回搜索结果,并以各种数据形式返回。本部分主要是对搜索索引中大数据的一些处理,像关键字的查询,数据的排序,以及对数据做一些聚合运算,像求和、平均值等等,还可以对数据的一些简单分析,以后的功能将会越来越丰富。
工具类名称:DKSerach
创建客户端client
方法签名:Client esClient(String hostIp, int port,String clusterName);
返回:client对象
签名参数说明:hostIp:要连接搜索主机的ip地址, port搜索引擎的端口号,clusterName集群名称。
范例:创建一个客户端对象。
通用搜索
方法签名:String esSearch(Client client,String indexName,String typeName,int from,int size,String sentence,String sortType,String resultType);
返回:搜索结果
签名参数说明:ES里面的字段默认如下:V1(文档标题),V2(文档时间),V3(文档内容),V4(文档来源,即文件路径)
Client搜索集群的客户端,indexName搜索引擎的索引名称(自定义),typeName搜索引擎的索引类型名称(自定义)。
from:记录偏移,size:记录数,sentence搜索语句,sortType:排序规则(null表示默认排序,否则是自定义排序格式:标题:权重,内容:权重),resultType返回类型(1-json,2-html)。
范例:例如有文档数据:
V1(文档标题),V2(文档时间),V3(文档内容),V4(文档路径),把数据索引到elasticsearch中。
如果根据文档内容或者文档标题搜索数据用方法esSearch的通用搜索方法,可以指定字段权重。
如果像指定显示的字段可以使用esSearch的重载方法。
通用搜索显示指定索引
方法签名:String esSearch(Client client,String indexName,String typeName,String from,String size,String sentence,String sortType,String showFd,StringresultType);
返回:搜索结果.
签名参数说明:ES里面的字段如下:V1,V2,V3,…,Vn
indexName搜索引擎的索引名称(自定义),typeName搜索引擎的类型名称(自定义)。
Client搜索集群的客户端,from:记录偏移,size:记录数,sentence搜索语句,sortType:排序规则(null默认排序,自定义排序格式:V1:权重,V2:权重,…),showFd四个显示字段,使用英文逗号分割(例如:V1,V2,V3,V4,分别显示成标题,内容,时间,地址,时间地址如果没有可以为空),resultType返回类型(1-json,2-html)。
范例:搜索指定索引里的数据。
聚合搜索
方法签名:String esSearchAgg(Client client,String indexName,StringtypeName ,String aggFdName,String aggType);
返回:搜索结果。
签名参数说明:ES里面的字段如下:V1,V2,V3,…,Vn
Client搜索集群的客户端,indexName搜索引擎的索引名称(自定义),typeName搜索引擎的类型名称(自定义)。
aggFdName:聚合字段名称,aggType聚合类型(avg平均数,sum总数)
范例:各种汽车的销售的数据
V1(汽车名称) V2(汽车品牌) V3(汽车颜色) V4(汽车销售价格) V5(汽车销售数量)
可以通过聚合方式统计某个品牌的销售数量总和;可以统计汽车销售的平均价格等等。
自然语言处理(NLP)
自然语言处理技术是所有与自然语言的计算机处理有关的技术的统称,其目的是使计算机理解和接受人类用自然语言输入的指令,完成从一种语言到另一种语言的翻译功能,自然语言处理技术的研究,可以丰富计算机知识处理的研究内容,推动人工智能技术的发展。
大快NLP模块是大快大数据一体化平台的一个组件,用户引用该组件可以有效进行自然语言的处理工作,如进行文章摘要,语义判别以及提高内容检索的精确度和有效性。
基本处理
自然语言处理研究的如今不仅作为人工智能核心课题来研究,而且也作为新一代计算机的核心课题来研究。从知识产业角度看,专家系统,数据库,知识库,计算机辅助设计系统(CAD)、计算机辅助教学系统(CAI)、计算机辅助决策系统,办公室自动化管理系统,智能机器人等,都需要用自然语言处理,具有篇章理解能力的自然语言理解系统可用于机器自动翻译、情报检索、自动标引、自动文摘、自动写故事小说等领域,都可以用我们的工具类DKNLPBase来处理。
本部分将用户输入的语句根据词库进行分词、关键词提取、摘要提取、词库维护。
工具类名称:DKNLPBase
标准分词
方法签名:List<Term> StandardTokenizer.segment(String txt);
返回:分词列表。
签名参数说明:txt:要分词的语句。
范例:下例验证一段话第5个分词是阿法狗。
关键词提取
方法签名:List<String> extractKeyword(String txt,int keySum);
返回:关键词列表.
签名参数说明:txt:要提取关键词的语句,keySum要提取关键词的数量
范例:给出一段话提取一个关键词是“程序员”。
短语提取
方法签名:List<String> extractPhrase(String txt, int phSum);
返回:短语
签名参数说明:txt:要提取短语的语句,phSum短语数量
范例:给出一段文字,能代表文章的五个短语,第一个短语是算法工程师。
自动摘要
方法签名:List<String> extractSummary(String txt, int sSum);
返回:摘要语句
签名参数说明:txt:要提取摘要的语句,sSum摘要句子数量
范例:自动提取三句摘要句子。
拼音转换
方法签名:List<Pinyin> convertToPinyinList(txt);
返回:拼音列表
签名参数说明:txt:要转换拼音的语句
范例:给出一段文字中第二个字的拼音。
添加词库
方法签名:String addCK(String filePath);
返回:空—完成,其它—错误信息
签名参数说明:filePath:新的词库文件,每个词使用回车换行分隔。
范例:读取新词库文件,将文件内容中第7个词“新美“添加到词库。
新词发现
方法签名:
NewWordDiscover discover = new NewWordDiscover(max_word_len, min_freq,min_entropy, min_aggregation, filter);
discover.discovery(text, size);
返回:空—完成,其它—错误信息
签名参数说明:max_word_len: 控制识别结果中最长的词语长度,默认值是 4;该值越大,运算量越大,结果中出现短语的数量也会越多。
min_freq: 控制结果中词语的最低频率,低于该频率的将会被过滤掉,减少一 些运算量。由于结果是按照频率排序的,所以该参数其实意义不大。实际上,在接口中直接设为了0,意思是所有候选词都会出来。
min_entropy: 控制结果中词语的最低信息熵(信息的不确定度)的值,一般取0.5 左右。该值越 大,越短的词语就越容易被提取出来。
min_aggregation: 控制结果中词语的最低互信息值(字和字之间的关联性),一般取 50 到 200.该值 越大,越长的词语就越容易被提取出来,有时候会出现一些短语。
Filter: 设为 true 的时候将使用内部词库过滤掉“旧词”。
Text:用于新词发现的文档。
Size:新词个数。
范例:新词发现。
文本分类(相似性)处理
本部分将使用用户指定的语料库进行训练,根据训练模型将文本分类。
比如:
新闻网站包含大量报道文章,基于文章内容,需要将这些文章按题材进行自动分类(例如自动划分成政治、经济、军事、体育、娱乐等。
在电子商务网站,用户进行了交易行为后对商品进行评价分类,商家需要对用户的评价划分为正面评价和负面评价,来获取各个商品的用户反馈统计情况。
电子邮箱频繁接收到垃圾广告信息,通过文本分类技术从众多的邮件中识别垃圾邮件并过滤,提高了邮箱用户的使用效率。
媒体每日有大量投稿,依靠文本分类技术能够对文章进行自动审核,标记投稿中的色情、暴力、政治、垃圾广告等违规内容。
工具类名称:DKNLPClassification
训练分类模型
方法签名:void trainModel(String corpusPath,String modelPath);
返回:空
签名参数说明:corpusPath:语料库本地目录(训练用的文本),modelPath模型保存目录。
范例:根据文本训练出来的模型。
文本分类
方法签名:String classifier (String modelPath,String filePath);
返回:分类信息
签名参数说明:modelPath模型保存目录,filePath待分类文本保存目录
范例:根据训练出来的模型对新的文本进行分类,分为健康类。
机器学习算法库
机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。
机器学习算法库包括各种机器学习算法,用户可以根据自己的需要调用不同的算法,得到结果。数据样本另行提供。
工具类名称:DKML
LR (逻辑回归)
主要用于分类
回归的英文是Regression,意思是“回退,退化,倒退”。回归分析的意思借用了“倒退,倒推”的含义。简单说就是“由果索因”的过程,是一种归纳的思想--当看到大量的事实所呈现的状态,推断出原因是如何的;当看到大量的数字对是某种状态,推断出它们之间蕴含的关系是如何的。
回归指研究一组随机变量(Y1 ,Y2 ,…,Yi)和另一组(X1,X2,…,Xk)变量之间关系的统计分析方法,又称多重回归分析。通常前者是因变量,后者是自变量。当因变量和自变量为线性关系时,称为线性回归(Linear Regression)。
逻辑回归(Logistic Regression)是一个被logistic方程归一化后的线性回归,
将线性回归输出的很大范围的数,压缩到0和1之间,这样的输出值表达为某一类别的概率
训练数据格式:
label1,value1,value2··· ···
··· ···
Label为0, 1, ..., k - 1
Value为数值
预测数据格式:
value1,value2··· ···
即在训练数据格式上将label去掉
结果数据格式:
value1,value2--label
··· ···
构建分类模型
方法签名:LRModelBuild(String hostIp, String hostName, StringhostPassword, String jarPath, String masterUrl, String inputPath,StringmodelPath,int numClass)
签名参数说明:hostIp:要连接主机的ip地址,
hostName:要连接主机的用户名,
hostPassword:要连接主机的密码
jarPath:jar包地址
masterUrl:local[2], 或spark://IP:PORT
inputPath:训练数据所在路径
modelPath:模型保存路径
numClass:分类数目
模型预测
方法签名:LRModelPredict(String hostIp, String hostName,StringhostPassword, String jarPath, String masterUrl, String inputPath,StringmodelPath,String outputPath)
签名参数说明:hostIp:要连接主机的ip地址,
hostName:要连接主机的用户名,
hostPassword:要连接主机的密码
jarPath:jar包地址
masterUrl:local[2], 或spark://IP:PORT
inputPath:训练数据所在路径
modelPath:模型保存路径
outputPath:结果保存路径
范例:有一信用卡还款信息数据,包括用户的一些属性信息:性别、年龄、金额、年限、之前的还款记录等等,以及类别信息:正常与违约。应用LRModel可以预测其他用户的还款信息是正常还款还是可能会发生违约。
随机森林)
主要用于分类和回归
随机森林(Random Forest)是用随机的方式建立一个森林,森林里面有很多的决策树组成,随机森林的每一棵决策树之间是没有关联的。在得到森林之后,当有一个新的输入样本进入的时候,就让森林中的每一棵决策树分别进行一下判断,看看这个样本应该属于哪一类(对于分类算法),然后看看哪一类被选择最多,就预测这个样本为那一类。
决策树实际上是将空间用超平面进行划分的一种方法,每次分割的时候,都将当前的空间一分为二。
森林里面有很多的决策树组成,随机森林的每一棵决策树之间是没有关联的。在得到森林之后,当有一个新的输入样本进入的时候,就让森林中的每一棵决策树分别进行一下判断,看看这个样本应该属于哪一类(对于分类算法),然后看看哪一类被选择最多,就预测这个样本为那一类。
训练数据格式:
label1,value1,value2··· ···
··· ···
Label为0, 1, ..., k - 1
Value为数值
预测数据格式:
value1,value2··· ···
即在训练数据格式上将label去掉
结果数据格式:
value1,value2--label
··· ···
构建分类模型
方法签名:RFClassModelBuild(String hostIp, String hostName,StringhostPassword, String jarPath, String masterUrl, String inputPath,StringmodelPath,int numClass)
签名参数说明:hostIp:要连接主机的ip地址,
hostName:要连接主机的用户名,
hostPassword:要连接主机的密码
jarPath:jar包所在路径
masterUrl:local[2], 或spark://IP:PORT
inputPath:训练数据所在路径
modelPath:模型保存路径
numClass:分类数目
构建回归模型
方法签名:RFRegresModelBuild(String hostIp, String hostName,StringhostPassword, String jarPath, String masterUrl, String inputPath,StringmodelPath)
签名参数说明:hostIp:要连接主机的ip地址,
hostName:要连接主机的用户名,
hostPassword:要连接主机的密码
jarPath:jar包所在路径
masterUrl:local[2], 或spark://IP:PORT
inputPath:训练数据所在路径
modelPath:模型保存路径
模型预测
方法签名:RFModelPredict(String hostIp, String hostName,StringhostPassword, String jarPath, String masterUrl, String inputPath,StringmodelPath,String outputPath)
签名参数说明:hostIp:要连接主机的ip地址,
hostName:要连接主机的用户名,
hostPassword:要连接主机的密码
jarPath:jar包所在路径
masterUrl:local[2], 或spark://IP:PORT
inputPath:训练数据所在路径
modelPath:模型保存路径
outputPath:结果保存路径
范例:基于信用卡还款信息数据也可以用RFClassModel来预测用户的还款行为信息。如果是基于一些房屋的数据来预测房屋的售价可以用RFRegresModel。
支持向量机)
主要用于分类
支持向量机(support vector machine)是一种二类分类模型,支持向量意思就是 数据集种的某些点,位置比较特殊,找分类线的时候,一般就看聚集在一起的两类数据,他们各自的最边缘位置的点,也就是最靠近划分直线的那几个点,而其他点对这条直线的最终位置的确定起不了作用,这些对分类线起决定作用的点就是支持向量,“机”即为算法。
支持向量机是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,即支持向量机的学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。
SVM是一个由分类超平面定义的判别分类器。
训练数据格式:
label1,value1,value2··· ···
··· ···
分类:Label为0, 1,仅支持二分类
回归:Label为数值
Value为数值
预测数据格式:
value1,value2··· ···
即在训练数据格式上将label去掉
结果数据格式:
value1,value2--label
··· ···
构建分类模型
方法签名:SVMModelBuild(String hostIp, String hostName, StringhostPassword, String jarPath, String masterUrl, String inputPath,StringmodelPath)
签名参数说明:hostIp:要连接主机的ip地址,
hostName:要连接主机的用户名,
hostPassword:要连接主机的密码
jarPath:jar包所在路径
masterUrl:local[2], 或spark://IP:PORT
inputPath:训练数据所在路径
modelPath:模型保存路径
模型预测
方法签名:SVMModelPredict(String hostIp, String hostName,StringhostPassword, String jarPath, String masterUrl, String inputPath,StringmodelPath,String outputPath)
签名参数说明:hostIp:要连接主机的ip地址,
hostName:要连接主机的用户名,
hostPassword:要连接主机的密码
jarPath:jar包所在路径
masterUrl:local[2], 或spark://IP:PORT
inputPath:训练数据所在路径
modelPath:模型保存路径
outputPath:结果保存路径
范例:SVMModel也可用于对信用卡数据用户还款行为的预测。
主成分分析)
主要用来对数据降维,去噪
主成分分析是设法将原来众多具有一定相关性(比如P个指标),重新组合成一组新的互相无关的综合指标来代替原来的指标。
主成分分析,是考察多个变量间相关性一种多元统计方法,研究如何通过少数几个主成分来揭示多个变量间的内部结构,即从原始变量中导出少数几个主成分,使它们尽可能多地保留原始变量的信息,且彼此间互不相关.通常数学上的处理就是将原来P个指标作线性组合,作为新的综合指标。
通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量,转换后的这组变量叫主成分。
训练用数据格式:
value1,value2,value3,value4
······
结果数据格式:
value1,value2
方法签名:PCAModel(String hostIp, String hostName,String hostPassword,String jarPath, String masterUrl,String inputPath,String outputPath,int k)
签名参数说明:hostIp:要连接主机的ip地址,
hostName:要连接主机的用户名,
hostPassword:要连接主机的密码
jarPath:jar包所在路径
masterUrl:local[2], 或spark://IP:PORT
inputPath:训练数据所在路径
outputPath:结果保存路径
K:主成分数目
范例:信用卡数据中用户属性信息可能有一部分是多余的或者起作用较少的,可以用PCAModel对用户属性信息进行降维。
均值)
主要用来聚类
聚类指的是一种学习方式,即把物理或抽象对象的集合分组为由彼此类似的对象组成的多个类的分析过程。
K-均值是把数据集按照k个簇分类,其中k是用户给定的,其中每个簇是通过质心来计算簇的中心点。
首先创建一个初始划分,随机地选择 k 个对象,每个对象初始地代表了一个簇中心。对于其他的对象,根据其与各个簇中心的距离,将它们赋给最近的簇。当有新的对象加入簇或者已有对象离开簇的时候,重新计算簇的平均值,然后对对象进行重新分配。这个过程不断重复,直到没有簇中对象的变化。
训练用数据格式:
value1,value2
预测用数据格式:
value1,value2
结果数据格式:
value1,value2--label
构建聚类模型
方法签名:KMModelBuild(String hostIp, String hostName,String hostPassword,String jarPath, String masterUrl, String inputPath,String modelPath,intnumClusters)
签名参数说明:hostIp:要连接主机的ip地址,
hostName:要连接主机的用户名,
hostPassword:要连接主机的密码
jarPath:jar包所在路径
masterUrl:local[2], 或spark://IP:PORT
inputPath:训练数据所在路径
modelPath:模型保存路径
numClusters:聚类数目
聚类模型预测
方法签名:KMModelPredict(String hostIp, String hostName,StringhostPassword, String jarPath, String masterUrl, String inputPath,StringmodelPath, String outputPath)
签名参数说明:hostIp:要连接主机的ip地址,
hostName:要连接主机的用户名,
hostPassword:要连接主机的密码
jarPath:jar包所在路径
masterUrl:local[2], 或spark://IP:PORT
inputPath:训练数据所在路径
modelPath:模型保存路径
outputPath:预测结果保存路径
范例:有一航空会员数据,包括会员性别、航空里程、消费金额等,可以应用KMModel根据需求对会员的级别进行聚类,比如聚类成高中低三个类别,或者S、A、B、C四个类别。
高斯混合模型)
主要用来聚类
混合高斯模型基于多变量正态分布,常用于聚类,通过选择成分最大化后验概率来完成聚类。与k-means聚类相似,高斯混合模型也使用迭代算法计算,最终收敛到局部最优。高斯混合模型在各类尺寸不同、聚类间有相关关系的的时候可能比k-means聚类更合适。使用高斯混合模型的聚类属于软聚类方法(一个观测量按概率属于各个类,而不是完全属于某个类),各点的后验概率提示了各数据点属于各个类的可能性。
训练用数据格式:
value1,value2
预用数据格式:
value测1,value2
结果数据格式:
value1,value2--label
模型构建
方法签名:GMModelBuild(String hostIp, String hostName,
String hostPassword, String jarPath, String masterUrl,
String inputPath,String modelPath,int numClusters)
签名参数说明:hostIp:要连接主机的ip地址,
hostName:要连接主机的用户名,
hostPassword:要连接主机的密码
jarPath:jar包所在路径
masterUrl:local[2], 或spark://IP:PORT
inputPath:训练数据所在路径
modelPath:模型保存路径
numClusters:聚类数目
模型预测
方法签名:GMModelPredict(String hostIp, String hostName,
String hostPassword, String jarPath, String masterUrl,
String inputPath,String modelPath,String outputPath)
签名参数说明:hostIp:要连接主机的ip地址,
hostName:要连接主机的用户名,
hostPassword:要连接主机的密码
jarPath:jar包所在路径
masterUrl:local[2], 或spark://IP:PORT
inputPath:训练数据所在路径
modelPath:模型保存路径
outputPath:预测结果保存路径
范例:对航空会员级别聚类也可以应用GMModel来进行聚类分析。
朴素贝叶斯)
主要用于分类
贝叶斯分类是一系列分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。朴素贝叶斯算法(Naive Bayesian) 是其中应用最为广泛的分类算法之一。
分类是将一个未知样本分到几个预先已知类的过程。数据分类问题的解决是一个两步过程:第一步,建立一个模型,描述预先的数据集或概念集。通过分析由属性描述的样本(或实例,对象等)来构造模型。假定每一个样本都有一个预先定义的类,由一个被称为类标签的属性确定。为建立模型而被分析的数据元组形成训练数据集,该步也称作有指导的学习。
训练数据格式:
label1,value1,value2··· ···
··· ···
值要求为非负
预测数据格式:
value1,value2
即在训练数据格式上将label去掉
结果数据格式:
value1,value2--label
构建模型
方法签名:NBModelBuild(String hostIp, String hostName,String hostPassword,String jarPath, String masterUrl, String inputPath, String modelPath)
签名参数说明:hostIp:要连接主机的ip地址,
hostName:要连接主机的用户名,
hostPassword:要连接主机的密码
jarPath:jar包所在路径
masterUrl:local[2], 或spark://IP:PORT
inputPath:训练数据所在路径
modelPath:模型保存路径
预测
方法签名:NBModelPredict(String hostIp, String hostName,StringhostPassword, String jarPath, String masterUrl,String inputPath,StringmodelPath, String outputPath)
签名参数说明:hostIp:要连接主机的ip地址,
hostName:要连接主机的用户名,
hostPassword:要连接主机的密码
jarPath:jar包所在路径
masterUrl:local[2], 或spark://IP:PORT
inputPath:训练数据所在路径
modelPath:模型保存路径
outputPath:预测结果保存路径
范例:对信用卡用户还款行为的预测也可以应用NBModel来进行预测。
主要用于挖掘关联规则的频繁项集
FP-Growth算法是韩家炜等人在2000年提出的关联分析算法,它采取如下分治策略:将提供频繁项集的数据库压缩到一棵频繁模式树(FP-tree),但仍保留项集关联信息。
在算法中使用了一种称为频繁模式树(Frequent Pattern Tree)的数据结构。FP-tree是一种特殊的前缀树,由频繁项头表和项前缀树构成。FP-Growth算法基于以上的结构加快整个挖掘过程。
训练用数据格式:
value1,value2··· ···
··· ···
每行数据以逗号分隔
结果数据格式:
[t,x]: 3
数据项:频繁次数
方法签名:FPGrowthModelBuild(String hostIp, String hostName, StringhostPassword, String jarPath, String masterUrl, String inputPath,StringoutputPath,double minSupport)
签名参数说明:hostIp:要连接主机的ip地址,
hostName:要连接主机的用户名,
hostPassword:要连接主机的密码
jarPath:jar包所在路径
masterUrl:local[2], 或spark://IP:PORT
inputPath:训练数据所在路径
outputPath:训练结果保存路径
minSupport:最小支持度,默认0.3,相当于占30%,超过此支持度的将被选出
范例:有一超市购物数据,可以应用FPGrowthModel来分析出顾客经常一起购买的商品,可以对这些商品进行搭配促销。
ALS(交替最小二乘法的协同过滤算法)
主要用于推荐,数据样本:test.data
意为交替最小二乘法常用于基于矩阵分解的推荐系统中。例如:将用户(user)对商品(item)的评分矩阵分解为两个矩阵:一个是用户对商品隐含特征的偏好矩阵,另一个是商品所包含的隐含特征的矩阵。在这个矩阵分解的过程中,评分缺失项得到了填充,也就是说我们可以基于这个填充的评分来给用户最佳商品推荐了。
训练用数据格式:
userID, productID, rating
······
userID:用户id,数值型
productID:商品id,数值型
Rating:用户对商品的打分,数值型
数据用英文逗号分隔
预测用数据格式:
给用户推荐产品
userID每行一个
给产品推荐用户
productID每行一个
结果数据格式:
userID--productID:rating, productID:rating, ······
推荐模型构建
方法签名:ALSModelBuild(String hostIp, String hostName, StringhostPassword, String jarPath, String masterUrl, String inputPath,StringmodelPath,int rank,int numIterations)
签名参数说明:hostIp:要连接主机的ip地址,
hostName:要连接主机的用户名,
hostPassword:要连接主机的密码
jarPath:jar包所在路径
masterUrl:local[2], 或spark://IP:PORT
inputPath:训练数据所在路径
modelPath:模型保存路径
Rank:特征数目,默认10,用户打分时所考虑的特征角度
numIterations:迭代次数,推荐10-20,默认10
给产品推荐用户
方法签名:recommendUser(String hostIp, String hostName, StringhostPassword, String jarPath, String masterUrl, String inputPath,StringmodelPath,String outputPath)
签名参数说明:hostIp:要连接主机的ip地址,
hostName:要连接主机的用户名,
hostPassword:要连接主机的密码
jarPath:jar包所在路径
masterUrl:local[2], 或spark://IP:PORT
inputPath:预测用数据所在路径
modelPath:模型保存路径
outputPath:预测结果保存路径
给用户推荐产品
方法签名:recommendProduct(String hostIp, String hostName,StringhostPassword, String jarPath, String masterUrl, String inputPath,StringmodelPath,String outputPath)
签名参数说明:hostIp:要连接主机的ip地址,
hostName:要连接主机的用户名,
hostPassword:要连接主机的密码
jarPath:jar包所在路径
masterUrl:local[2], 或spark://IP:PORT
inputPath:预测用数据所在路径
modelPath:模型保存路径
outputPath:预测结果保存路径
范例:有一豆瓣电影影评数据,包括用户ID、电影ID及打分,就可以应用ALSModel进行对用户推荐电影,或者对新上电影推荐潜在的用户。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机储存器、内存、只读存储器、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其他形式的存储介质中。
可以理解的是,对于本领域的普通技术人员来说,可以根据本发明的技术构思做出其它各种相应的改变与变形,而所有这些改变与变形都应属于本发明权利要求的保护范围。
Claims (14)
1.一种基于大数据开发命令集的开发框架,其包括:
将大数据开发中应用程序、指令中通用的、重复使用的基础代码、算法封装为类库;
获取开发人员调用类的名称;
根据开发人员调用类的名称,将开发大数据相关应用程序、指令以类库中类的方式反馈给开发人员。
2.如权利要求1所述的基于大数据开发命令集的开发框架,其特征在于,
所述类库为开放式结构,并在类库中预留新增类的接口。
3.如权利要求2所述的基于大数据开发命令集的开发框架,其特征在于,所述类库包括:
数据源与SQL引擎模块:实现关系型数据库、本地文件与大数据平台非关系型数据库之间的数据导入导出,以及实现SQL引擎功能;
数据采集模块:实现采集互联网、关系型数据库、本地文件中的数据,并将其存储至大数据平台;
数据处理模块:实现根据用户的需求对大数据平台里的数据清洗成规定的格式并进行统计、分析;
机器学习算法模块:实现分析大数据平台内数据之间的关联、数据的分类、以及根据数据之间已有的关联分析新的数据关系;
自然语言处理模块:实现大数据平台中数据中自然语言的处理工作包括进行文章摘要,语义判别以及提高内容检索的精度及有效性;
搜索引擎模块:实现根据用户的请求提供数据检索服务,并将检索结果展示给用户。
4.如权利要求3所述的基于大数据开发命令集的开发框架,其特征在于,
所述数据源与SQL引擎模块包括:
关系型数据库数据导入导出单元,用于将外部数据源导入大数据平台或者将大数据平台中数据导出至外部数据源;外部数据源包括Oracle数据库、mySQL数据库、SQLServer数据库;
关系型数据库数据导入导出单元包括:关系型数据库数据导出子单元以及关系型数据库数据导入子单元;
关系型数据库数据导出子单元,用于从关系型数据库某个表导入数据到非关系型数据库NOSQL;
关系型数据库数据导入子单元,用于从非关系型数据库某个表导出数据到关系型数据库;
本地文件数据导入导出单元,用于将本地文件数据导入大数据平台或者将大数据平台中数据导出至本地文件;
本地文件数据导入导出单元包括本地文件数据导入子单元以及本地文件数据导出子单元;
本地文件数据导入子单元,用于将本地文件组和/或单个文件导入到非关系型数据库NOSQL;
本地文件数据导出子单元,用于从NOSQL导出数据到本地文件,文件类型TXT,文件存储目录为单一目录;
SQL引擎单元,用于处理表之间的复杂操作和sql类的数据统计查询;
SQL引擎单元包括NOSQL数据库连接子单元、HIVE数据表建立子单元、HIVE数据表追加子单元;
NOSQL数据库连接子单元,用于通过connectionNOSQL方法连接大数据平台的NOSQL数据库;
HIVE数据表建立子单元,用于利用createTable方法在HIVE中建立特定格式的数据表;
HIVE数据表追加子单元,用于利用loadData方法将Linux平台中指定目录中符合格式的数据,导入到指定的HIVE表中,数据格式要和创建表时指定的格式相同。
5.如权利要求4所述的基于大数据开发命令集的开发框架,其特征在于,
关系型数据库数据导出子单元包括:
方法签名:String db2nosql (String jdbcStr,String uName,String pwd,StringtbName,String whereStr,String dirName,String writeMode,String threadNum,String hostIp,String hostName,String hostPassword);
返回:空—正确,非空:错误信息
签名参数说明:jdbcStr,uName,pwd,tbName,whereStr分别为jdbc连接串,用户名,密码,表名,条件串,dirName:输出目录名,writeMode :0 表示覆盖,1表示增量,threadNum:表示启用的线程数,线程数不能大于符合条件的记录数,与节点数量相同,如果该表中没有主键,则线程数为1,hostIp:要连接主机的ip地址,hostName:要连接主机的用户名,hostPassword:要连接主机的密码,要具备执行Hadoop的权限的用户;
关系型数据库数据导入子单元包括:
方法签名:String nosql2Rdbms(String jdbcStr,String uName,String pwd,StringtbName,String exportDir,String threadNum,String hostIp,String hostName,StringhostPassword)
返回:空—正确,非空:错误信息;
签名参数说明:jdbcStr,uName,pwd,tbName分别为jdbc连接串,用户名,密码,表名,exportDir:要从hdfs导出的目录,threadNum:表示启用的线程数,与节点数量相同,hostIp:要连接主机的ip地址,hostName:要连接主机的用户名,hostPassword:要连接主机的密码,要具备执行Hadoop的权限的用户;
本地文件数据导入子单元包括:
在本地文件组导入数据到NOSQL时,文件类型为 TXT、DOC、PDF;
方法签名:String file2nosql(String filePath,String dirName,StringnosqlUrl,int fileLength);
返回:空—正确,错误抛出异常
签名参数说明:filePath分别为本地文件目录,包括文件名,如果不写文件名,则导入目录中全部文件,dirName:输出目录名,包括文件名,nosqlUrl为连接hdfs的地址及端口,fileLength文件长度限制,文件存为SequenceFile格式,
在本地文件导入数据到NOSQL时,文件类型为 TXT、DOC、PDF;
方法签名:String file2nosql2(String filePath,String dirName,StringnosqlUrl,int fileLength);
返回:空—正确,错误抛出异常
签名参数说明:filePath为本地文件,dirName:输出目录名,nosqlUrl为连接hdfs的地址及端口,fileLength文件长度限制;
在将本地文件组导入数据到NOSQL,HBase;
方法签名:String file2hbase(String filePath,String tableName,intfileLength,String zkHostIp) ;
返回:空—正确,错误抛出异常
签名参数说明:filePath为本地文件,tableName为hbase的表名称,fileLength文件长度限制,zkHostIp为zookeeper的主机IP;
本地文件数据导出子单元包括:
方法签名:String nosql2file(String filePath,String exportDir,StringhdfsUrl)
返回:空—正确,错误抛出异常,
签名参数说明:filePath分别为本地文件目录,exportDir:要从nosql导出的目录,hdfsUrl为连接hdfs的地址及端口;
NOSQL数据库连接子单元包括:
方法签名:Connection connectionNOSQL(String hostIP,String port,Stringusername,String password,String jdbcDriverName);
返回:正确-返回Connection连接,错误抛出异常,
签名参数说明:hostIP为nosql所在节点的ip;port为hive的端口;username为连接hive的用户名;password为密码;jdbcDriverName为连接nosql的驱动URL串;
HIVE数据表建立子单元包括:
方法签名:boolean createTable(Connection con,String sql,String optStr);
返回:true—成功,false—失败;
签名参数说明:con,sql,optStr分别为JDBC Connection连接,标准的sql建表语句,每行字段间的分隔符;
HIVE数据表追加子单元包括:
方法签名:boolean loadData(Connection con,String filePath,StringtableName)。
返回:true—成功,false—失败。
签名参数说明:con,filePath,tableName分别为JDBC Connection连接,数据在nosql上的路径地址,包含文件名,nosql的表名。
6.如权利要求3所述的基于大数据开发命令集的开发框架,其特征在于,
数据采集模块包括:
用户创建单元,用于在使用网络爬虫采集数据之前先创建爬虫用户;
用户密码修改单元,用于修改爬虫用户登录密码;
用户ID获取单元,用于获得用户唯一标识;
任务创建单元,用于创建爬虫任务;
任务ID获取单元,用于获得指定任务名的唯一标识;
任务启动单元,用于启动爬虫任务;
任务停止单元,用于停止爬虫任务;
任务删除单元,用于删除爬虫任务;
任务采集数量获取单元,用于获得爬虫任务当前采集的记录数;
json格式数据采集单元,用于获得爬虫任务当前采集的记录,以json格式返回;
json格式元素数据采集单元,用于获得爬虫任务当前采集的记录,以json格式返回;
txt格式元素数据采集单元,用于获得爬虫任务当前采集的记录,以txt格式返回。
7.如权利要求6所述的基于大数据开发命令集的开发框架,其特征在于,
用户创建单元包括:
方法签名:int regUser(String uName,String password);
返回: -1参数错误,-2系统错误,-3此时注册太多,0注册成功,1用户已存在;
签名参数说明:uName:用户邮箱,password:初始密码;
用户密码修改单元包括:
方法签名:int changeUserPwd(String uName,String oldPassword,StringnewPassword);
返回:-1参数错误,-2系统错误,-3用户不存在,0修改成功;
签名参数说明:uName:用户邮箱;oldPassword:用户旧密码;newPassword:用户新密码;
用户ID获取单元包括:
方法签名:String getCorID(String uName);
返回:-1参数错误,-2系统错误,-3 corID不存在,其它 corID;
签名参数说明:uName:用户自定义的名称;
任务创建单元包括:
方法签名:String createTask(String uName,String xmlFilePath);
返回:-1初始化参数错误,-2系统错误,0创建任务成功;
签名参数说明:
uName:用户名称,xmlFilePath:任务参数xml文件,含路径;
任务ID获取单元包括:
方法签名:String getTaskID(String uName,String taskName);
返回:-1参数错误,-2系统错误,-3不存在,其他 tasked;
签名参数说明:uName:用户名称,taskName:任务名称;
任务启动单元包括:
方法签名:int runTask(String corID,String taskID);
返回:-1参数错误,-2系统错误,0成功;
签名参数说明:corID:用户ID,taskID:任务ID;
任务停止单元包括:
方法签名:int stopTask(String corID,String taskID);
返回:-1参数错误,-2系统错误,0成功;
签名参数说明:corID:用户ID,taskID:任务ID;
任务删除单元包括:
方法签名:int delTask(String corID,String taskID);
返回:-1参数错误,-2系统错误,-3任务不存在,-4正在运行不能删除,0成功;
签名参数说明:corID:用户ID,taskID:任务ID;
任务采集数量获取单元包括:
方法签名:long recSum(String corID,String taskID);
返回:记录数量;
签名参数说明:corID:用户ID,taskID:任务ID;
json格式数据采集单元包括:
方法签名:String getCrwJsonData(String corID,String taskID,String from,String size);
返回:json数据;
签名参数说明:corID:用户ID,taskID:任务ID,from:记录偏移,size:记录数;
json格式元素数据采集单元包括:
方法签名:String getCrwJsonDataFeilds(String corID,String taskID,Stringfrom,String size,String fields[]);
返回:json数据;
签名参数说明:corID:用户ID,taskID:任务ID,from:记录偏移,size:记录数,fields元数据字段数组;
txt格式元素数据采集单元包括:
方法签名:String getCrwTextDataFeilds (String corID,String taskID,Stringfrom,String size,String fields[]);
返回:TXT数据,字段以半角逗号分隔;
签名参数说明:corID:用户ID,taskID:任务ID,from:记录偏移,size:记录数,fields元数据字段数组。
8.如权利要求6所述的基于大数据开发命令集的开发框架,其特征在于,
所述数据处理模块包括:
数据清洗单元,用于将大数据平台里的数据清洗成规定的格式;
数据清洗单元包括记录规范子单元、字段规范子单元、字段筛选子单元、记录筛选子单元、数据去重子单元;
记录规范子单元用于将不合法的记录去除;
字段规范子单元,用于按关键字过滤出想要的字段;
字段筛选子单元,用于从所有字段中筛选出想要的多个字段数据
记录筛选子单元,用于筛选出符合条件的记录条数;
数据去重子单元,用于筛选出不同的数据或字段;
数据统计单元,用于对大数据平台里的数据进行统计;
数据统计单元包括算数计算子单元以及记录数子单元;
算数计算子单元,用于对某字段取最大值、最小值、求和、计算平均值;
记录数子单元,用于计算某字段符合某条件的记录数;
数据分析单元,用于对收集来的数据进行分析,提取有用信息和形成结论;
数据分析单元包括分组条件分析子单元、关联分析频繁二项集子单元以及关联分析频繁三项集子单元;
分组条件分析子单元,用于对数据条件筛选分析或分组统计分析;
关联分析频繁二项集子单元,用于分析某两种物品同时出现的频率;
关联分析频繁三项集子单元,用于分析某三种物品同时出现的频率;
场景中算法应用单元,用于对用户或者物品进行分类预测,对用户或物品进行聚类分析,进行关联分析以及物品推荐。
9.如权利要求8所述的基于大数据开发命令集的开发框架,其特征在于,
记录规范子单元包括:
方法签名:formatRec(String spStr, int fdSum, String srcDirName,StringdstDirName, String hostIp, String hostPort, String hostName,StringhostPassword)
返回:空—正确,非空:错误信息。
签名参数说明:spStr分隔符号;fdSum:字段数量;srcDirName:源目录名;dstDirName输出目录名,输出目录如果存在将会覆盖;hostIp:要连接hiveserver主机的ip地址;hostPort:hiveserver的端口,默认10000;hostName:要连接主机的用户名,hostPassword:要连接主机的密码,要具备执行Hadoop的权限的用户;
字段规范子单元包括:
方法签名:formatField(String spStr, int fdSum,String fdNum, StringregExStr, String srcDirName,String dstDirName, String hostIp, StringhostPort, String hostName, String hostPassword)
返回:空—正确,非空:错误信息
签名参数说明:spStr分隔符号;fdSum:字段数量;fdNum:字段序号,检查哪个字段是否符合正则,0为全部检查;regExStr:字段中包含该字符的记录将被剔除,与字段序号相对应,多个字段时每个字段都符合相应正则的记录将被剔除;srcDirName:源目录名;dstDirName输出目录名,输出目录如果存在将会覆盖;hostIp:要连接hiveserver主机的ip地址;hostPort:hiveserver的端口,默认10000;hostName:要连接主机的用户名;hostPassword:要连接主机的密码,要具备执行Hadoop的权限的用户;
字段筛选子单元包括:
方法签名:selectField(String spStr, int fdSum,String fdNum, StringsrcDirName,String dstDirName, String hostIp, String hostPort, StringhostName,String hostPassword)
返回:空—正确,非空:错误信息
签名参数说明:spStr分隔符号,fdSum:字段数量;fdNum:字段数组,为整数数组,内容是要保留的字段序号,没有编号的字段将去除),输入格式:逗号分隔的数字;srcDirName:源目录名;dstDirName输出目录名,输出目录如果存在将会覆盖;hostIp:要连接hiveserver主机的ip地址;hostPort:hiveserver的端口,默认10000;hostName:要连接主机的用户名;
hostPassword:要连接主机的密码,要具备执行Hadoop的权限的用户;
记录筛选子单元包括:
方法签名:selectRec(String spStr, int fdSum, String whereStr, StringsrcDirName,String dstDirName, String hostIp, String hostPort, StringhostName, String hostPassword)
返回:空—正确,非空:错误信息;
签名参数说明:spStr分隔符号;fdSum:字段数量;whereStr:比较条件 f1 >= 2 and(f2=3 or f3=4),f1为第一个字段;srcDirName:源目录名;dstDirName输出目录名,输出目录如果存在将会覆盖;hostIp:要连接hiveserver主机的ip地址;hostPort:hiveserver的端口,默认10000;hostName:要连接主机的用户名;hostPassword:要连接主机的密码,要具备执行Hadoop的权限的用户;
数据去重子单元包括:
方法签名:dedup(String spStr, int fdSum, String srcDirName,StringdstDirName, String hostIp, String hostPort, String hostName, StringhostPassword)
返回:空—正确,非空:错误信息
签名参数说明:spStr分隔符号;fdNum:字段数组,去重的字段,0为整条记录,输入格式:0或逗号分隔的数字;srcDirName:源目录名;dstDirName输出目录名,输出目录如果存在将会覆盖;hostIp:要连接hiveserver主机的ip地址;hostPort:hiveserver的端口,默认10000;hostName:要连接主机的用户名;hostPassword:要连接主机的密码,要具备执行Hadoop的权限的用户;
算数计算子单元包括:
方法签名:long count(String fun, int fdSum, String spStr, int fdNum,StringdirName, String hostIp, String hostPort, String hostName, StringhostPassword)
返回:计算结果
签名参数说明:fun:功能avg,min,max,sum;fdSum:字段数量;spStr分隔符号;fdNum:字段编号;dirName:目录名;hostIp:要连接hiveserver主机的ip地址;hostPort:hiveserver的端口,默认10000;hostName:要连接主机的用户名;hostPassword:要连接主机的密码,要具备执行Hadoop的权限的用户;
记录数子单元包括:
方法签名:long count(String fun, int fdSum, String spStr, int fdNum,String compStr, String whereStr, String dirName, String hostIp, StringhostPort, String hostName, String hostPassword)
返回:记录数量;
签名参数说明:fun:功能count;fdSum:字段数量;spStr分隔符号;
fdNum:字段编号;compStr:比较符号,>, <, >=, <=, =,!=用法:"'>='";whereStr:比较条件;dirName:目录名;hostIp:要连接hiveserver主机的ip地址;hostPort:hiveserver的端口,默认10000;hostName:要连接主机的用户名;hostPassword:要连接主机的密码,要具备执行Hadoop的权限的用户;
分组条件分析子单元包括:
方法签名: analyse(String spStr, int fdSum, String whereStr, StringgroupStr, String srcDirName, String dstDirName, String hostIp, StringhostPort, String hostName, String hostPassword)
返回:空—正确,非空:错误信息
签名参数说明:spStr:分隔符号;fdSum:字段数量;whereStr:筛选条件;;groupStr:分组条件;srcDirName:文件所在目录;dstDirName:数据所在目录;hostIp:要连接hiveserver主机的ip地址;hostPort:hiveserver的端口,默认10000;hostName:要连接主机的用户名;hostPassword:要连接主机的密码,要具备执行Hadoop的权限的用户;
关联分析频繁二项集子单元包括:
方法签名:apriori2(String spStr, int fdSum, String pNum, String oNum,String whereStr, String srcDirName, String dstDirName, String hostIp, StringhostPort, String hostName, String hostPassword)
返回:空—正确,非空:错误信息
签名参数说明: spStr:分隔符号;fdSum:字段数量;pNum:要分析的物品所在字段;oNum:订单号等所在字段;whereStr:筛选条件;srcDirName:文件所在目录;dstDirName:数据所在目录;hostIp:要连接hiveserver主机的ip地址;hostPort:hiveserver的端口,默认10000;hostName:要连接主机的用户名;hostPassword:要连接主机的密码(要具备执行Hadoop的权限的用户;
关联分析频繁三项集子单元包括:
方法签名: apriori3(String spStr, int fdSum, String pNum, String oNum,String whereStr, String srcDirName, String dstDirName, String hostIp, StringhostPort, String hostName, String hostPassword)
返回:空—正确,非空:错误信息
签名参数说明: spStr:分隔符号;fdSum:字段数量;pNum:要分析的物品所在字段;oNum:订单号等所在字段;whereStr:筛选条件;srcDirName:文件所在目录;dstDirName:数据所在目录;hostIp:要连接hiveserver主机的ip地址;hostPort:hiveserver的端口,默认10000;hostName:要连接主机的用户名;hostPassword:要连接主机的密码,要具备执行Hadoop的权限的用户。
10.如权利要求9所述的基于大数据开发命令集的开发框架,其特征在于,
所述机器学习算法模块包括:逻辑回归单元、随机森林单元、支持向量机单元、主成分分析单元、K均值单元、高斯混合模型单元、朴素贝叶斯单元、FP-growth单元、交替最小二乘法的协同过滤算法单元;
逻辑回归单元包括
构建分类模型
方法签名:LRModelBuild(String hostIp, String hostName, StringhostPassword, String jarPath, String masterUrl, String inputPath,StringmodelPath,int numClass)
签名参数说明:hostIp:要连接主机的ip地址;
hostName:要连接主机的用户名;
hostPassword:要连接主机的密码;
jarPath:jar包地址;
masterUrl:local[2], 或spark://IP:PORT;
inputPath:训练数据所在路径;
modelPath:模型保存路径;
numClass:分类数目;
模型预测
方法签名:LRModelPredict(String hostIp, String hostName,StringhostPassword, String jarPath, String masterUrl, String inputPath,StringmodelPath,String outputPath)
签名参数说明:hostIp:要连接主机的ip地址;
hostName:要连接主机的用户名;
hostPassword:要连接主机的密码;
jarPath:jar包地址;
masterUrl:local[2], 或spark://IP:PORT;
inputPath:训练数据所在路径;
modelPath:模型保存路径;
outputPath:结果保存路径;
随机森林单元包括
构建分类模型
方法签名:RFClassModelBuild(String hostIp, String hostName,StringhostPassword, String jarPath, String masterUrl, String inputPath,StringmodelPath,int numClass)
签名参数说明:hostIp:要连接主机的ip地址;
hostName:要连接主机的用户名;
hostPassword:要连接主机的密码;
jarPath:jar包所在路径;
masterUrl:local[2], 或spark://IP:PORT;
inputPath:训练数据所在路径;
modelPath:模型保存路径;
numClass:分类数目;
构建回归模型
方法签名:RFRegresModelBuild(String hostIp, String hostName, StringhostPassword, String jarPath, String masterUrl, String inputPath,StringmodelPath)
签名参数说明:hostIp:要连接主机的ip地址;
hostName:要连接主机的用户名;
hostPassword:要连接主机的密码;
jarPath:jar包所在路径;
masterUrl:local[2], 或spark://IP:PORT;
inputPath:训练数据所在路径;
modelPath:模型保存路径;
模型预测
方法签名:RFModelPredict(String hostIp, String hostName,StringhostPassword, String jarPath, String masterUrl, String inputPath,StringmodelPath,String outputPath)
签名参数说明:hostIp:要连接主机的ip地址;
hostName:要连接主机的用户名;
hostPassword:要连接主机的密码;
jarPath:jar包所在路径;
masterUrl:local[2], 或spark://IP:PORT;
inputPath:训练数据所在路径;
modelPath:模型保存路径;
outputPath:结果保存路径;
支持向量机单元包括
构建分类模型
方法签名:SVMModelBuild(String hostIp, String hostName, StringhostPassword, String jarPath, String masterUrl, String inputPath,StringmodelPath)
签名参数说明:hostIp:要连接主机的ip地址;
hostName:要连接主机的用户名;
hostPassword:要连接主机的密码;
jarPath:jar包所在路径;
masterUrl:local[2], 或spark://IP:PORT;
inputPath:训练数据所在路径;
modelPath:模型保存路径;
模型预测
方法签名:SVMModelPredict(String hostIp, String hostName,StringhostPassword, String jarPath, String masterUrl, String inputPath,StringmodelPath,String outputPath)
签名参数说明:hostIp:要连接主机的ip地址;
hostName:要连接主机的用户名;
hostPassword:要连接主机的密码;
jarPath:jar包所在路径;
masterUrl:local[2], 或spark://IP:PORT;
inputPath:训练数据所在路径;
modelPath:模型保存路径;
outputPath:结果保存路径;
主成分分析单元包括
方法签名:PCAModel(String hostIp, String hostName,String hostPassword,String jarPath, String masterUrl,String inputPath,String outputPath,int k)
签名参数说明:hostIp:要连接主机的ip地址;
hostName:要连接主机的用户名;
hostPassword:要连接主机的密码;
jarPath:jar包所在路径;
masterUrl:local[2], 或spark://IP:PORT;
inputPath:训练数据所在路径;
outputPath:结果保存路径;
K:主成分数目;
K均值单元包括
构建聚类模型
方法签名:KMModelBuild(String hostIp, String hostName,String hostPassword,String jarPath, String masterUrl, String inputPath,String modelPath,intnumClusters)
签名参数说明:hostIp:要连接主机的ip地址;
hostName:要连接主机的用户名;
hostPassword:要连接主机的密码;
jarPath:jar包所在路径;
masterUrl:local[2], 或spark://IP:PORT;
inputPath:训练数据所在路径;
modelPath:模型保存路径;
numClusters:聚类数目;
聚类模型预测
方法签名:KMModelPredict(String hostIp, String hostName,StringhostPassword, String jarPath, String masterUrl, String inputPath,StringmodelPath, String outputPath)
签名参数说明:hostIp:要连接主机的ip地址;
hostName:要连接主机的用户名;
hostPassword:要连接主机的密码;
jarPath:jar包所在路径;
masterUrl:local[2], 或spark://IP:PORT;
inputPath:训练数据所在路径;
modelPath:模型保存路径;
outputPath:预测结果保存路径;
高斯混合模型单元包括
模型构建
方法签名:GMModelBuild(String hostIp, String hostName,
String hostPassword, String jarPath, String masterUrl,
String inputPath,String modelPath,int numClusters)
签名参数说明:hostIp:要连接主机的ip地址;
hostName:要连接主机的用户名;
hostPassword:要连接主机的密码;
jarPath:jar包所在路径;
masterUrl:local[2], 或spark://IP:PORT;
inputPath:训练数据所在路径;
modelPath:模型保存路径;
numClusters:聚类数目;
模型预测
方法签名:GMModelPredict(String hostIp, String hostName,
String hostPassword, String jarPath, String masterUrl,
String inputPath,String modelPath,String outputPath)
签名参数说明:hostIp:要连接主机的ip地址;
hostName:要连接主机的用户名;
hostPassword:要连接主机的密码;
jarPath:jar包所在路径;
masterUrl:local[2], 或spark://IP:PORT;
inputPath:训练数据所在路径;
modelPath:模型保存路径;
outputPath:预测结果保存路径;
朴素贝叶斯单元包括
构建模型
方法签名:NBModelBuild(String hostIp, String hostName,String hostPassword,String jarPath, String masterUrl, String inputPath, String modelPath)
签名参数说明:hostIp:要连接主机的ip地址;
hostName:要连接主机的用户名;
hostPassword:要连接主机的密码;
jarPath:jar包所在路径;
masterUrl:local[2], 或spark://IP:PORT;
inputPath:训练数据所在路径;
modelPath:模型保存路径;
预测
方法签名:NBModelPredict(String hostIp, String hostName,StringhostPassword, String jarPath, String masterUrl,String inputPath,StringmodelPath, String outputPath)
签名参数说明:hostIp:要连接主机的ip地址;
hostName:要连接主机的用户名;
hostPassword:要连接主机的密码;
jarPath:jar包所在路径;
masterUrl:local[2], 或spark://IP:PORT;
inputPath:训练数据所在路径;
modelPath:模型保存路径;
outputPath:预测结果保存路径;
FPgrowth单元包括
方法签名:FPGrowthModelBuild(String hostIp, String hostName, StringhostPassword, String jarPath, String masterUrl, String inputPath,StringoutputPath,double minSupport)
签名参数说明:hostIp:要连接主机的ip地址,
hostName:要连接主机的用户名;
hostPassword:要连接主机的密码;
jarPath:jar包所在路径;
masterUrl:local[2], 或spark://IP:PORT;
inputPath:训练数据所在路径;
outputPath:训练结果保存路径;
minSupport:最小支持度,默认0.3,超过此支持度的将被选出;
交替最小二乘法的协同过滤算法单元包括
推荐模型构建
方法签名:ALSModelBuild(String hostIp, String hostName, StringhostPassword, String jarPath, String masterUrl, String inputPath,StringmodelPath,int rank,int numIterations)
签名参数说明:hostIp:要连接主机的ip地址;
hostName:要连接主机的用户名;
hostPassword:要连接主机的密码;
jarPath:jar包所在路径;
masterUrl:local[2], 或spark://IP:PORT;
inputPath:训练数据所在路径;
modelPath:模型保存路径;
Rank:特征数目,默认10,用户打分时所考虑的特征角度;
numIterations:迭代次数,推荐10-20,默认10;
给产品推荐用户
方法签名:recommendUser(String hostIp, String hostName, StringhostPassword, String jarPath, String masterUrl, String inputPath,StringmodelPath,String outputPath)
签名参数说明:hostIp:要连接主机的ip地址;
hostName:要连接主机的用户名;
hostPassword:要连接主机的密码;
jarPath:jar包所在路径;
masterUrl:local[2], 或spark://IP:PORT;
inputPath:预测用数据所在路径;
modelPath:模型保存路径;
outputPath:预测结果保存路径;
给用户推荐产品
方法签名:recommendProduct(String hostIp, String hostName,StringhostPassword, String jarPath, String masterUrl, String inputPath,StringmodelPath,String outputPath)
签名参数说明:hostIp:要连接主机的ip地址;
hostName:要连接主机的用户名;
hostPassword:要连接主机的密码;
jarPath:jar包所在路径;
masterUrl:local[2], 或spark://IP:PORT;
inputPath:预测用数据所在路径;
modelPath:模型保存路径;
outputPath:预测结果保存路径。
11.如权利要求3所述的基于大数据开发命令集的开发框架,其特征在于,
所述自然语言处理模块包括:
基本处理单元用于将用户输入的语句根据词库进行分词、关键词提取、摘要提取、词库维护;
基本处理单元包括:标准分词子单元、关键词提取子单元、短语提取子单元、自动摘要子单元、拼音转换子单元、词库添加子单元、新词发现子单元;
标准分词子单元,用于分词;
关键词提取子单元,用于从语句中提取关键词;
短语提取子单元,用于从语句中提取短语;
自动摘要子单元,用于从语句汇总自动获取摘要句;
拼音转换子单元,用于将中文语句转换为拼音;
词库添加子单元,用于文件中的词加入到词库中;
新词发现子单元,用于发现新词;
文本分类处理单元用于将使用用户指定的语料库进行训练,根据训练模型将文本分类;
文本分类处理单元包括:分类模型训练子单元、文本分类子单元;
分类模型训练子单元,用于根据文本训练分类模型;
文本分类子单元,用于根据训练出来的模型对新的文本进行分类。
12.如权利要求11所述的基于大数据开发命令集的开发框架,其特征在于,
标准分词子单元包括
方法签名:List<Term> StandardTokenizer.segment(String txt);
返回:分词列表
签名参数说明:txt:要分词的语句;
关键词提取子单元包括
方法签名:List<String> extractKeyword(String txt,int keySum);
返回:关键词列表;
签名参数说明:txt:要提取关键词的语句,keySum要提取关键词的数量;
短语提取子单元包括
方法签名:List<String> extractPhrase(String txt, int phSum);
返回:短语;
签名参数说明:txt:要提取短语的语句,phSum短语数量;
自动摘要子单元包括
方法签名:List<String> extractSummary(String txt, int sSum);
返回:摘要语句;
签名参数说明:txt:要提取摘要的语句,sSum摘要句子数量;
拼音转换子单元包括
方法签名:List<Pinyin> convertToPinyinList(txt);
返回:拼音列表;
签名参数说明:txt:要转换拼音的语句;
词库添加子单元包括
方法签名:String addCK(String filePath);
返回:空—完成,其它—错误信息
签名参数说明:filePath:新的词库文件,每个词使用回车换行分隔;
新词发现子单元包括
方法签名:
NewWordDiscover discover = new NewWordDiscover(max_word_len, min_freq,min_entropy, min_aggregation, filter);
discover.discovery(text, size);
返回:空—完成,其它—错误信息;
签名参数说明:max_word_len: 控制识别结果中最长的词语长度,默认值是 4;该值越大,运算量越大,结果中出现短语的数量也会越多;
min_freq: 控制结果中词语的最低频率,低于该频率的将会被过滤掉,减少运算量;
min_entropy:控制结果中词语的最低信息熵的值,该值越大,越短的词语就越容易被提取出来;
min_aggregation:控制结果中词语的最低互信息值,取50到200;该值越大,越长的词语就越容易被提取出来;
Filter:设为true的时候将使用内部词库过滤掉“旧词”;
Text:用于新词发现的文档;
Size:新词个数;
分类模型训练子单元包括
方法签名:void trainModel(String corpusPath,String modelPath);
返回:空;
签名参数说明:corpusPath:语料库本地目录(训练用的文本),modelPath模型保存目录;
文本分类子单元包括
方法签名:String classifier (String modelPath,String filePath);
返回:分类信息
签名参数说明:modelPath模型保存目录,filePath待分类文本保存目录。
13.如权利要求3所述的基于大数据开发命令集的开发框架,其特征在于,
所述搜索引擎模块包括:
数据导入搜索引擎单元,用于将用户的数据导入搜索引擎;
数据导入搜索引擎单元包括大数据平台内数据导入子单元、文件型数据导入子单元;
大数据平台内数据导入子单元,用于把大数据平台内指定的数据导入到搜索引擎;
文件型数据导入子单元,用于将特定文件导入指定大小部分,截取指定大小的文件内容导入到搜索引擎当中;
搜索引擎导出数据单元,用于将搜索引擎内数据导出到本地文件;
搜索引擎导出数据单元包括搜索引擎数据记录数获取子单元、搜索引擎数据转换为txt子单元、搜索引擎数据转换为xls子单元;
搜索引擎数据记录数获取子单元,用于获得搜索引擎数据记录数;
搜索引擎数据转换为txt子单元,用于将搜索引擎数据转为本地txt文件;
搜索引擎数据转换为xls子单元,用于将搜索引擎数据转为本地xls文件;
实时数据导入单元,用于将实时数据导入搜索引擎;
实时数据导入单元包括实时数据导入到搜索引擎子单元以及实时数据导入到HIVE子单元;
实时数据导入到搜索引擎子单元,用于实时数据导入搜索引擎;
实时数据导入到HIVE子单元,用于将实时数据导入HIVE;
用户搜索单元,用于接收用户提交搜索语句,后台将返回搜索结果,并以各种数据形式返回;
用户搜索单元包括客户端创建子单元、通用搜索子单元、通用搜索显示指定索引子单元、聚合搜索子单元;
客户端创建子单元,用于创建客户端client对象;
通用搜索子单元,用于根据文档内容或者文档标题搜索数据用方法,返回搜索结果;
通用搜索显示指定索引子单元,用于搜索指定索引里的数据;
聚合搜索子单元,用于通过聚合方式搜索数据。
14.如权利要求13所述的基于大数据开发命令集的开发框架,其特征在于,
大数据平台内数据导入子单元包括
方法签名:String hdfs2ES(String nosqlUrl, String dirName,String hostIp,String indexName,String typeName,int port,int length);
返回:空—正确,错误抛出异常
签名参数说明:nosqlUrl,dirName分别为连接hdfs的地址及端口,nosql上的目录地址;hostIp:要连接搜索主机的ip地址;indexName搜索引擎的索引名称;typeName搜索引擎的类型名称;port搜索引擎的端口号,fileLength文件长度限制;
文件型数据导入子单元包括
方法签名:String file2ES(int fileType,String filePath,String hostIp,StringindexName,String typeName,int port,int length);
返回:空—正确,错误抛出异常;
签名参数说明:fileType:文件类型,1-txt,2-doc,3-xls,4-pdf;filePath为本地文件所在的目录,可嵌套子目录;hostIp:要连接搜索主机的ip地址;indexName搜索引擎的索引名称;typeName搜索引擎的类型名称;port搜索引擎的端口号,fileLength文件长度限制;
搜索引擎数据记录数获取子单元包括
方法签名:long getESSum(String hostIp,String indexName,String typeName,intport);
返回:记录数量
签名参数说明:hostIp:要连接搜索主机的ip地址;indexName搜索引擎的索引名称;typeName搜索引擎的类型名称;port搜索引擎的端口号;
搜索引擎数据转换为txt子单元包括
方法签名:String ES2Txt(String hostIp,String indexName,String typeName,intport,int from,int size);
返回:txt数据,半角英文逗号分隔
签名参数说明:hostIp:要连接搜索主机的ip地址;indexName搜索引擎的索引名称;typeName搜索引擎的类型名称;port搜索引擎的端口号;from:记录偏移;size:记录数
搜索引擎数据转换为xls子单元包括
方法签名:String ES2XLS(String hostIp,String indexName,String typeName,intport,int from,int size);
返回:excel表格
签名参数说明:hostIp:要连接搜索主机的ip地址;indexName搜索引擎的索引名称;typeName搜索引擎的类型名称;port搜索引擎的端口号;from:记录偏移,size:记录数;
实时数据导入到搜索引擎子单元包括
方法签名:void streamData2Es(String indexName,String typeName,StringjsonData)
返回:无
签名参数说明:indexName、typeName分别为es的索引名、类型名,jsonData为要存放到ES的数据,其数据类型为json对象;
实时数据导入到HIVE子单元包括
方法签名:void streamData2Hive(String hiveDirName,String data)
返回:无
签名参数说明:hiveDirName为hive的目录名称,data为要存放到hive的数据,其格式要按照指定的格式,在这之前与该数据相符合的hive表预先建立;
客户端创建子单元包括
方法签名:Client esClient(String hostIp, int port,String clusterName);
返回:client对象
签名参数说明:hostIp:要连接搜索主机的ip地址, port搜索引擎的端口号,clusterName集群名称。
通用搜索子单元包括
方法签名:String esSearch(Client client,String indexName,String typeName,int from,int size,String sentence,String sortType,String resultType);
返回:搜索结果
签名参数说明:ES里面的字段默认如下:V1文档标题,V2文档时间,V3文档内容,V4文档来源,即文件路径;
Client搜索集群的客户端,indexName搜索引擎的索引名称,typeName搜索引擎的索引类型名称;
from:记录偏移,size:记录数,sentence搜索语句,sortType:排序规则,null表示默认排序,否则是自定义排序格式:标题:权重,内容:权重,resultType返回类型,1-json,2-html;
通用搜索显示指定索引子单元包括
方法签名:String esSearch(Client client,String indexName,String typeName,String from,String size,String sentence,String sortType,String showFd,StringresultType);
返回:搜索结果.
签名参数说明:ES里面的字段如下:V1,V2,V3,…,Vn
indexName搜索引擎的索引名称,typeName搜索引擎的类型名称;
Client搜索集群的客户端,from:记录偏移,size:记录数,sentence搜索语句,sortType:排序规则,null默认排序,自定义排序格式:V1:权重,V2:权重,…;showFd四个显示字段,使用英文逗号分割,V1,V2,V3,V4,分别显示成标题,内容,时间,地址,时间地址如果没有可以为空;resultType返回类型,1-json,2-html;
聚合搜索子单元包括
方法签名:String esSearchAgg(Client client,String indexName,StringtypeName ,String aggFdName,String aggType);
返回:搜索结果;
签名参数说明:ES里面的字段如下:V1,V2,V3,…,Vn;
Client搜索集群的客户端,indexName搜索引擎的索引名称,typeName搜索引擎的类型名称;
aggFdName:聚合字段名称,aggType聚合类型,avg平均数,sum总数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810894669.8A CN109062551A (zh) | 2018-08-08 | 2018-08-08 | 基于大数据开发命令集的开发框架 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810894669.8A CN109062551A (zh) | 2018-08-08 | 2018-08-08 | 基于大数据开发命令集的开发框架 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109062551A true CN109062551A (zh) | 2018-12-21 |
Family
ID=64678139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810894669.8A Withdrawn CN109062551A (zh) | 2018-08-08 | 2018-08-08 | 基于大数据开发命令集的开发框架 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109062551A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109903554A (zh) * | 2019-02-21 | 2019-06-18 | 长安大学 | 一种基于Spark的路网交通运行分析方法 |
CN113505119A (zh) * | 2021-07-29 | 2021-10-15 | 青岛以萨数据技术有限公司 | 一种基于多数据源的etl方法及装置 |
CN118410094A (zh) * | 2024-07-01 | 2024-07-30 | 北京科杰科技有限公司 | 一种网络化的Hive表数据加载方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140365242A1 (en) * | 2013-06-07 | 2014-12-11 | Siemens Medical Solutions Usa, Inc. | Integration of Multiple Input Data Streams to Create Structured Data |
CN106649455A (zh) * | 2016-09-24 | 2017-05-10 | 孙燕群 | 一种大数据开发的标准化系统归类、命令集系统 |
CN107797793A (zh) * | 2017-11-23 | 2018-03-13 | 山东浪潮商用系统有限公司 | 一种构建代理服务器框架的方法和装置 |
CN108363564A (zh) * | 2018-01-23 | 2018-08-03 | 平安普惠企业管理有限公司 | 多项目组件化实现方法、装置、终端设备及存储介质 |
-
2018
- 2018-08-08 CN CN201810894669.8A patent/CN109062551A/zh not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140365242A1 (en) * | 2013-06-07 | 2014-12-11 | Siemens Medical Solutions Usa, Inc. | Integration of Multiple Input Data Streams to Create Structured Data |
CN106649455A (zh) * | 2016-09-24 | 2017-05-10 | 孙燕群 | 一种大数据开发的标准化系统归类、命令集系统 |
CN107797793A (zh) * | 2017-11-23 | 2018-03-13 | 山东浪潮商用系统有限公司 | 一种构建代理服务器框架的方法和装置 |
CN108363564A (zh) * | 2018-01-23 | 2018-08-03 | 平安普惠企业管理有限公司 | 多项目组件化实现方法、装置、终端设备及存储介质 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109903554A (zh) * | 2019-02-21 | 2019-06-18 | 长安大学 | 一种基于Spark的路网交通运行分析方法 |
CN113505119A (zh) * | 2021-07-29 | 2021-10-15 | 青岛以萨数据技术有限公司 | 一种基于多数据源的etl方法及装置 |
CN113505119B (zh) * | 2021-07-29 | 2023-08-29 | 青岛以萨数据技术有限公司 | 一种基于多数据源的etl方法及装置 |
CN118410094A (zh) * | 2024-07-01 | 2024-07-30 | 北京科杰科技有限公司 | 一种网络化的Hive表数据加载方法 |
CN118410094B (zh) * | 2024-07-01 | 2024-09-06 | 北京科杰科技有限公司 | 一种网络化的Hive表数据加载方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106649455B (zh) | 一种大数据开发的标准化系统归类、命令集系统 | |
US11126647B2 (en) | System and method for hierarchically organizing documents based on document portions | |
CN105224699B (zh) | 一种新闻推荐方法及装置 | |
Inmon et al. | Data architecture: a primer for the data scientist: big data, data warehouse and data vault | |
US8577823B1 (en) | Taxonomy system for enterprise data management and analysis | |
US9116985B2 (en) | Computer-implemented systems and methods for taxonomy development | |
CN111177569A (zh) | 基于人工智能的推荐处理方法、装置及设备 | |
van Altena et al. | Understanding big data themes from scientific biomedical literature through topic modeling | |
CN104636402A (zh) | 一种业务对象的分类、搜索、推送方法和系统 | |
US10795895B1 (en) | Business data lake search engine | |
Hammond et al. | Cloud based predictive analytics: text classification, recommender systems and decision support | |
CN109062551A (zh) | 基于大数据开发命令集的开发框架 | |
Iskandarli | Applying clustering and topic modeling to automatic analysis of citizens’ comments in E-Government | |
Wita et al. | Content-based filtering recommendation in abstract search using neo4j | |
Chang et al. | Using data mining technology to solve classification problems: A case study of campus digital library | |
CN110795613A (zh) | 商品搜索方法、装置、系统及电子设备 | |
Das et al. | A review on text analytics process with a CV parser model | |
Tejasree et al. | An improved differential bond energy algorithm with fuzzy merging method to improve the document clustering for information mining | |
Li et al. | Research on hot news discovery model based on user interest and topic discovery | |
US20220156285A1 (en) | Data Tagging And Synchronisation System | |
Cao | E-Commerce Big Data Mining and Analytics | |
Lu et al. | Mining latent attributes from click-through logs for image recognition | |
Liiv | Data Science Techniques for Cryptocurrency Blockchains | |
Vakali et al. | New directions in web data management 1 | |
Ajitha et al. | EFFECTIVE FEATURE EXTRACTION FOR DOCUMENT CLUSTERING TO ENHANCE SEARCH ENGINE USING XML. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20181221 |