暂无个人介绍
分区的字段数不一致。应该是同步Maxcompute使用的是系统时间模型,这样Maxcompute的表需要三个分区来表示时间。
PartitionSpec partionSpec =new PartitionSpec(“fq_day='20190318'”);
这个只是新建了一个分区对象。
你需要调用 table.createPartition(partionSpec)才能完成分区的创建。
阿里云平台也可以用Table Store代替MongoDB
不建议用select DISTINCT(分区字段名) from 表名;,表有很多分区的时候,会扫描全表,会消耗很多CU,造成额外花费。 简单获取可以 show partitions xxxtable;
可以在开发UDF的时候编写多个重载。好像没有遇到运行只要实现一个的问题。
评价推荐引擎有很多指标可以看:
1.用户满意度
用户作为推荐系统的重要参与者,其满意度是评测推荐系统的最重要指标。但是,用户满意度没有办法离线计算,只能通过用户调查或者在线实验获得。
2.预测准确度
预测准确度可以用评分预测和TopN表示。
评分预测:评分预测的预测准确度一般通过均方根误差(RMSE)和平均绝对误差(MAE)计算。对于测试集中一个用户u 和 物品 i,令 rui 是用户u对i 的实际评分,而^rui 是推荐算法给出的预测评分
TopN方法:网站在提供服务时,一般是给用户一个个性化的推荐列表,这种推荐叫做 TopN 推荐。TopN 推荐的预测准确率一般是通过 准确率(precision)/召回率(recall) 度量。
3.覆盖率
表示为在推荐列表的物品占整体物品集的比例。
4.多样性
用户的兴趣是广泛的,比如用户既可能喜欢动画片,也喜欢动作片。为了满足用户广泛的兴趣,推荐列表需要能够覆盖用户不同的兴趣领域。
5.新颖性
用户喜欢周星驰的电影,如果推荐给用户周星驰演过的但是用户自己从来没听过的电影,叫新颖性。
6.惊喜性
用户喜欢周星驰的电影,但是莫名其妙推荐了跟用户兴趣完全无关的成龙的电影。用户看完后表示很喜欢,这叫惊喜度。
7.信任度
用户对推荐系统的结果本身的认可感。
8.实时性
当用户买苹果手机的时候,立即推荐苹果耳机等配件。而不是等到第二天收集了用户购买行为,再离线计算推荐算法,第二天推荐苹果耳机。这就叫实时性。
9.健壮性
防止攻击的性能。假如我是商户,我可以叫大量人来阅览点击我的商品,那么推荐系统极有可能会增加推荐我的商品的概率。这就是恶意攻击。因为推荐系统本身是通过收集用户行为而推荐的。针对这种情况,除了选择健壮性较高的算法之外,还可以
设计推荐系统时尽量使用代价比较高的行为。比如,在购买行为和浏览行为中主要使用购买行为。
在使用数据前,进行攻击检测,从而对数据进行清理。
这样配置plugin即可
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<encoding>UTF-8</encoding>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
估计是没有加载依赖包吧。是用maven构建的java工程么?
main函数里面无法去读资源文件,main相当于一个diver只能启动任务。或者使用ODPS sdk取获取。如上