Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >用线性回归无编码实现文章浏览数预测

用线性回归无编码实现文章浏览数预测

作者头像
用户2936994
发布于 2018-08-27 02:50:54
发布于 2018-08-27 02:50:54
51400
代码可运行
举报
文章被收录于专栏:祝威廉祝威廉
运行总次数:0
代码可运行

无编码利用协同算法实现个性化推荐,我纯粹使用SQL和配置实现了一个更为复杂一些的,计算文章词汇的tf/idf值,将浏览数作为预测值,使用线性回归算法进行模型训练的示例。帮助大家更好的了解StreamingPro对算法的优秀支持。这篇文章的示例将会跑在Spark 2.0 上了。为了方便大家体验,我已经将Spark 安装包,StreamignPro,以及分词包都准备好,大家下载即可。

准备工作

我们假设你下载的StreamingPro,ansi-seg包在/tmp目录下。然后将Spark 2.0 解压,进入主目录。

复制如下模板

我已经发布了三个配置文件,分别计算:

  1. 词汇的 idf 值 ,链接
  2. 给每个词汇生成一个唯一的数字标示,链接
  3. 使用线性回归算法进行训练, 链接

PS : 有道笔记有时候第一次刷不出来,你刷新下就好。

复制保存三个文件:

  1. /tmp/idf.json
  2. /tmp/term-index.json
  3. /tmp/lr-train.json

本机运行

生成idf 文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd  $SPARK_HOME

./bin/spark-submit   --class streaming.core.StreamingApp \
--master local[2] \
--name test \
--jars /tmp/ansj_seg-5.0.0-all-in-one.jar \
/tmp/streamingpro-0.3.3-SNAPSHOT-online-mllib-2.0.0.jar \
-streaming.name test    \
-streaming.platform spark   \
-streaming.job.file.path file:///tmp/idf.json

生成内容会存储成Parquet文件。在/tmp/idf 目录下可以看到具体文件。

接着生成 term index ,文件位于 /tmp/term-with-index,最后进行模型训练,训练好的模型在/tmp/lr-model

后续只要在Spark Streaming中加载,即可完成流式计算

配置文件简要说明

以lr-train.json为例,大体框架如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "lr1": {
    "desc": "LR模型训练Job",
    "strategy": "streaming.core.strategy.SparkStreamingStrategy",
    "compositor": [  ]
  },
  "udf_register": {
    "desc": "通过这个方式可以注册你自己开发的udf函数",
    "strategy": "streaming.core.strategy.SparkStreamingRefStrategy",    
        "compositor": [  ]
  },
  "term_index_ref_table": {
    "desc": "在这里申明表,可以在job中被引用",
    "strategy": "streaming.core.strategy.SparkStreamingRefStrategy",
    "algorithm": [],
    "ref": [],
     "compositor": [  ]
  },
  "term_idf_ref_table": {
    "desc": "在这里申明表,可以在job中被引用",
    "strategy": "streaming.core.strategy.SparkStreamingRefStrategy",    
    "algorithm": [],
    "ref": [],
     "compositor": [  ]
  }
}

这里有一个job,两个关联表,一个UDF函数注册模块。我在配置文件的描述中已经有说明。job 是一个可执行的main函数,你可以这么理解。关联表申明后可以直接在job的sql中使用。UDF函数注册模块则可以使得你很容易扩展SQL的功能。

他们唯一的区别是,Job 的strategy 是 SparkStreamingStrategy,而其他非Job则是SparkStreamingRefStrategy

因为一个配置文件里可能有多个Job,每个Job引用的关联表也是不一样,你需要显示指定引用,在Job 的ref中申明即可:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  "lr1": {
    "strategy": "streaming.core.strategy.SparkStreamingStrategy",
    "ref": [
      "udf_register",
      "term_index_ref_table",
      "term_idf_ref_table"
    ],
    "compositor": [

这样框架自动为你准备好关联引用,注册UDF函数,然后在lr1 这个job中就可以使用了。比如lr里的parse 函数就是通过udf_register模块提供的。

之后就是定义输入,执行的SQL,以及输出(存储或者模型引擎)。 SQL在案例中你可以看到,可以非常复杂,多个SQL模块之间可以互相作用,通过多条SQL实现一个复杂的逻辑。比如我们这里试下了tf/idf计算等功能。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016.08.05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
StreamingPro 提供API实现自定义功能前言
最近给StreamingPro提供了两个新的模块,一个是streamingpro-manager,一个是streamingpro-api。 streamingpro-manager主要是提供一个部署,管理Spark任务的web服务。streamingpro则是增强了定制StreamingPro的能力。当然,还有就是对原有功能的增强,比如StreamingPro SQL Server 支持异步导出数据,使得交互式查询中,如果有海量结果需要返回成为可能。
用户2936994
2018/08/27
6160
StreamingPro使用教程
准备工作 下载Spark 1.6.2 下载StreamingPro 我们假设你下载的StreamingPro包在/tmp目录下。 复制如下模板 { "esToCsv": { "desc": "测试", "strategy": "streaming.core.strategy.SparkStreamingStrategy", "algorithm": [], "ref": [], "compositor": [ { "name": "st
用户2936994
2018/08/27
7290
无编码利用协同算法实现个性化推荐
根据昨天的URL上报数据生成ALS模型。之后将模型加载到流式计算中,对实时URL的访问用户进行内容推荐。整个流程只需要你写写SQL(做解析),弄弄配置就搞定。
用户2936994
2018/08/27
4500
让CarbonData使用更简单
我之前写过一篇使用的文章。CarbonData集群模式体验。到0.3.0版本,已经把kettle去掉了,并且我提交的PR已经能够让其在Spark Streaming中运行。之后将其集成到StreamingPro中,可以简单通过配置即可完成数据的流式写入和作为SQL服务被读取。
用户2936994
2018/08/27
8710
让CarbonData使用更简单
StreamingPro 支持多输入,多输出配置
最近正好有个需求,就是从不同的数据库以及表里拉出数据,经过一定的处理放到ES里供查询,最好还能放个到parquet里,这样可以支持更复杂的SQL。之前StreamingPro是只能配置一个数据源的,所以做了些改造,方便配置多个数据源,以及多个写出。
用户2936994
2018/08/27
3260
StreamingPro添加Scala script 模块支持
SQL 在解析字符串方面,能力还是有限,因为支持的算子譬如substring,split等有限,且不具备复杂的流程表达能力。我们内部有个通过JSON描述的DSL引擎方便配置化解析,然而也有一定的学习时间成本。
用户2936994
2018/08/27
7170
StreamingPro 支持Spark Structured Streaming
Structured Streaming 的文章参考这里: Spark 2.0 Structured Streaming 分析。2.0的时候只是把架子搭建起来了,当时也只支持FileSource(监控目录增量文件),到2.0.2后支持Kafka了,也就进入实用阶段了,目前只支持0.10的Kafka。Structured Streaming 采用dataframe API,并且对流式计算重新进行了抽象,个人认为Spark streaming 更灵活,Structured Streaming 在某些场景则更方便,但是在StreamingPro中他们之间则没太大区别,唯一能够体现出来的是,Structured Streaming 使得checkpoint真的进入实用阶段。
用户2936994
2018/08/27
4590
StreamingPro 简化流式计算配置
前些天可以让批处理的配置变得更优雅StreamingPro 支持多输入,多输出配置,现在流式计算也支持相同的配置方式了。
用户2936994
2018/08/27
1.2K0
StreamingPro支持Flink的流式计算了
有的时候我们只要按条处理,追求实时性而非吞吐量的时候,类似Storm的模式就比较好了。Spark 在流式处理一直缺乏改进,而Flink在流式方面做得很棒,两者高层的API也是互相借鉴,容易形成统一的感官,所以决定让StreamingPro适配Flink,让其作为StreamingPro底层的流式引擎。
用户2936994
2018/08/27
1.2K0
StreamingPro支持Flink的流式计算了
StreamingPro 再次支持 Structured Streaming
之前已经写过一篇文章,StreamingPro 支持Spark Structured Streaming,不过当时只是玩票性质的,因为对Spark 2.0+ 版本其实也只是尝试性质的,重点还是放在了spark 1.6 系列的。不过时间在推移,Spark 2.0+ 版本还是大势所趋。所以这一版对底层做了很大的重构,StreamingPro目前支持Flink,Spark 1.6+, Spark 2.0+ 三个引擎了。
用户2936994
2018/08/27
2800
Spark Streaming + Spark SQL 实现配置化ETL流程
通常而言,你可能会因为要走完上面的流程而构建了一个很大的程序,比如一个main方法里上百行代码,虽然在开发小功能上足够便利,但是复用度更方面是不够的,而且不利于协作,所以需要一个更高层的开发包提供支持。
用户2936994
2018/08/27
1.1K0
StreamingPro 基于Spark 2.1.1版本 支持Spark Streaming
很多人吐槽StreamingPro构建实在太麻烦了。看源码都难。然后花了一天时间做了比较大重构,这次只依赖于ServiceFramework项目。具体构建方式如下:
用户2936994
2018/08/27
2250
算法训练和模型部署如何避免多次重写数据预处理代码
前段时间,我们对接算法的工程师哭丧的和我说,模型生成后一般都要部署成API的形态对外提供服务,但是算法工程师并没有提供如何将一条数据转化特征向量的方法,他能拿到的是代码逻辑以及一些“中间元数据”。数据预处理本来就复杂,翻译也是一件极其困难的事情。我解释了这件事情难以解决的原因,但是显然他还是有些失望。
用户1332428
2018/07/30
7640
StreamingPro 可以暴露出原生API给大家使用
我们知道StreamingPro 是一个完全SQL/Script化的,基于Spark平台的一套生产力工具。但是不可避免的,我们可能希望直接操作SqlContext或者使用原生的DataFrame API。 这里我们通过script 让大家支持这个功能:
用户2936994
2018/08/27
2920
MLSQL如何支持部署SKLearn,Tensorflow,MLLib模型提供API预测服务
部署成API服务时,除了要把raw数据特征化成向量外,研发还要想着怎么加载模型,产生模型的框架五花八门,比如Tensorflow,SKlearn,Spark MLllib等每个框架都有自己的模型格式。在我司,有一次用Sklearn研发了一个模型,研发资源比较紧张,没办法,算法同学治好自己用Python flask搭建了一个API,然后部署成微服务(多实例来解决并发能力)。
用户2936994
2018/08/27
8280
流式计算常见模块用法说明
StreamingPro有非常多的模块可以直接在配置文件中使用,本文主要针对流式计算中涉及到的模块。
用户2936994
2018/08/27
1.3K0
基于SparkSQL实现的一套即席查询服务
支持的数据源:hdfs、hive、hbase、kafka、mysql、es、mongo
UFO
2018/12/28
2K0
使用Spark SQL构建交互式查询引擎
StreamingPro 原来仅仅是用来作为Spark Streaming的一个配置化+SQL封装,然而不经意间,已经涵盖了批处理,交互式查询等多个方面。今天就讲讲如何使用StreamingPro构建一个交互式查询引擎。
用户2936994
2018/08/27
2.3K0
使用Spark SQL构建交互式查询引擎
使用Spark SQL 构建流式处理程序
今天介绍利用 StreamingPro 构建流式(Spark Streaming)计算程序
用户2936994
2018/08/27
4270
利用Spark Streaming实现分布式采集系统
而Spark Streaming 在上层概念上,完美融合了批量计算和流式计算,让他们你中有我,我中有你,这种设计使得Spark Streaming 作为流式计算的一个载体,同时也能作为其他一些需要分布式架构的问题提供解决方案。
用户2936994
2018/08/27
7790
利用Spark Streaming实现分布式采集系统
推荐阅读
相关推荐
StreamingPro 提供API实现自定义功能前言
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验