有以下Hive表的定义:
create table topic_recommend_score (
category_id int,
topic_id bigint,
score double,
rank int
);
这张表是我们业务里话题推荐分值表的简化版本。category_id代表分类ID,topic_id是话题ID,score是评分值。rank代表每个分类下话题分值的排名,用开窗函数计算出来的:row_number() over(partition by t.category_id order by t.score desc)
在对外提供推荐结果时,我们会将每个小组下排名前1000的话题ID取出,拼成一个逗号分隔的字符串,处理之后送入HBase供调用方查询。拼合的SQL语句如下:
select category_id,
concat_ws(',',collect_list(cast(topic_id as string)))
from topic_recommend_score
where rank >= 1 and rank <= 1000
group by category_id;
看起来没什么问题?但实际上是错误的。输出结果中总会有一些category_id对应的列表顺序异常,比如本来排名正数与排名倒数的两批ID调换了位置,即rank变成了n-3, n-2, n-1, n, 5, 6, 7, ..., n-4, 1, 2, 3, 4
。
产生这个问题的根本原因自然在MapReduce,如果启动了多于一个mapper/reducer来处理数据,select出来的数据顺序就几乎肯定与原始顺序不同了。考虑把mapper数固定成1比较麻烦(见我之前写的那篇Hive调优文章),也不现实,所以要迂回地解决问题:把rank加进来再进行一次排序,拼接完之后把rank去掉。如下:
select category_id,
regexp_replace(
concat_ws(',',
sort_array(
collect_list(
concat_ws(':',lpad(cast(rank as string),5,'0'),cast(topic_id as string))
)
)
),
'\\d+\:','')
from topic_recommend_score
where rank >= 1 and rank <= 1000
group by category_id;
这里将rank放在了topic_id之前,用冒号分隔,然后用sort_array函数对collect_list之后的结果进行排序(只支持升序)。特别注意,rank必须要在高位补足够的0对齐,因为排序的是字符串而不是数字,如果不补0的话,按字典序排序就会变成1, 10, 11, 12, 13, 2, 3, 4...
,又不对了。 将排序的结果拼起来之后,用regexp_replace函数替换掉冒号及其前面的数字,大功告成。
顺便看一下Hive源码中collect_list和collect_set函数对应的逻辑吧。
public class GenericUDAFMkCollectionEvaluator extends GenericUDAFEvaluator
implements Serializable {
private static final long serialVersionUID = 1l;
enum BufferType { SET, LIST }
// For PARTIAL1 and COMPLETE: ObjectInspectors for original data
private transient PrimitiveObjectInspector inputOI;
// For PARTIAL2 and FINAL: ObjectInspectors for partial aggregations (list
// of objs)
private transient StandardListObjectInspector loi;
private transient ListObjectInspector internalMergeOI;
private BufferType bufferType;
//needed by kyro
public GenericUDAFMkCollectionEvaluator() {
}
public GenericUDAFMkCollectionEvaluator(BufferType bufferType){
this.bufferType = bufferType;
}
@Override
public ObjectInspector init(Mode m, ObjectInspector[] parameters)
throws HiveException {
super.init(m, parameters);
// init output object inspectors
// The output of a partial aggregation is a list
if (m == Mode.PARTIAL1) {
inputOI = (PrimitiveObjectInspector) parameters[0];
return ObjectInspectorFactory
.getStandardListObjectInspector((PrimitiveObjectInspector) ObjectInspectorUtils
.getStandardObjectInspector(inputOI));
} else {
if (!(parameters[0] instanceof ListObjectInspector)) {
//no map aggregation.
inputOI = (PrimitiveObjectInspector) ObjectInspectorUtils
.getStandardObjectInspector(parameters[0]);
return (StandardListObjectInspector) ObjectInspectorFactory
.getStandardListObjectInspector(inputOI);
} else {
internalMergeOI = (ListObjectInspector) parameters[0];
inputOI = (PrimitiveObjectInspector) internalMergeOI.getListElementObjectInspector();
loi = (StandardListObjectInspector) ObjectInspectorUtils.getStandardObjectInspector(internalMergeOI);
return loi;
}
}
}
class MkArrayAggregationBuffer extends AbstractAggregationBuffer {
private Collection container;
public MkArrayAggregationBuffer() {
if (bufferType == BufferType.LIST){
container = new ArrayList();
} else if(bufferType == BufferType.SET){
container = new LinkedHashSet();
} else {
throw new RuntimeException("Buffer type unknown");
}
}
}
@Override
public void reset(AggregationBuffer agg) throws HiveException {
((MkArrayAggregationBuffer) agg).container.clear();
}
@Override
public AggregationBuffer getNewAggregationBuffer() throws HiveException {
MkArrayAggregationBuffer ret = new MkArrayAggregationBuffer();
return ret;
}
//mapside
@Override
public void iterate(AggregationBuffer agg, Object[] parameters)
throws HiveException {
assert (parameters.length == 1);
Object p = parameters[0];
if (p != null) {
MkArrayAggregationBuffer myagg = (MkArrayAggregationBuffer) agg;
putIntoCollection(p, myagg);
}
}
//mapside
@Override
public Object terminatePartial(AggregationBuffer agg) throws HiveException {
MkArrayAggregationBuffer myagg = (MkArrayAggregationBuffer) agg;
List ret = new ArrayList(myagg.container.size());
ret.addAll(myagg.container);
return ret;
}
@Override
public void merge(AggregationBuffer agg, Object partial)
throws HiveException {
MkArrayAggregationBuffer myagg = (MkArrayAggregationBuffer) agg;
List partialResult = (ArrayList) internalMergeOI.getList(partial);
if (partialResult != null) {
for(Object i : partialResult) {
putIntoCollection(i, myagg);
}
}
}
@Override
public Object terminate(AggregationBuffer agg) throws HiveException {
MkArrayAggregationBuffer myagg = (MkArrayAggregationBuffer) agg;
List ret = new ArrayList(myagg.container.size());
ret.addAll(myagg.container);
return ret;
}
private void putIntoCollection(Object p, MkArrayAggregationBuffer myagg) {
Object pCopy = ObjectInspectorUtils.copyToStandardObject(p, this.inputOI);
myagg.container.add(pCopy);
}
public BufferType getBufferType() {
return bufferType;
}
public void setBufferType(BufferType bufferType) {
this.bufferType = bufferType;
}
}
你可能感兴趣的:(Hive)
Linux(Centos 7.6)命令详解:unzip
豆是浪个
linux centos 运维
1.命令作用unzip用于在一个ZIP存档压缩文件中进行陈列/检测/提取文件(list,testandextractcompressedfilesinaZIParchive);unzip命令是Linux系统中用于解压缩ZIP格式压缩文件的常用工具。它能够快速、方便地将ZIP文件解压到当前目录或指定目录。2.命令语法Usage:unzip[-Z][-opts[modifiers]]file[.zip
Linux(Centos 7.6)命令详解:zip
豆是浪个
linux 运维 服务器
1.命令作用打包和压缩(存档)文件(packageandcompress(archive)files);该程序用于打包一组文件进行分发;存档文件;通过临时压缩未使用的文件或目录来节省磁盘空间;且压缩文件可以在Linux、Windows和macOS中轻松提取。2.命令语法usage:zip[-options][-bpath][-tmmddyyyy][-nsuffixes][zipfilelist][
大数据实战:Spark + Hive 逐笔计算用户盈亏
WuJiWeb3
区块链链上数据分析 从0到1搭建区块链大数据平台 spark hive 大数据 web3 区块链 hadoop
简介本文将通过使用Spark+Hive实现逐笔计算区块链上用户交易数据的盈亏需求。由于我们是进行离线计算,所以我们的数据源是Hive表数据,Sink表也是Hive表,即Spark读取Hive表数据进行批计算之后写回到Hive表并供后续使用。通过本文你将会学到:如何使用SparkSQLAPI读取Hive数据源如何通过读取配置文件进行传参执行SQL如何将SparkSQL转换为JavaRDD进行处理如何
Ubuntu系统下交叉编译szip
linux运维
一、交叉编译szip1.下载源码下载Szip:https://docs.hdfgroup.org/archive/support/doc_resource/SZIP/i...下载并解压源码。tar-xvzfszip-2.1.1.tar.gzcdtar-xvzfszip-2.1.1mkdirszipbuild2.设置环境变量设置交叉编译工具链的环境变量:exportPATH=/home/yoyo/3
Hbase在hdfs上的archive目录占用空间过大
宝罗Paul
大数据 hbase
hbase版本:1.1.2hadoop版本:2.7.3Hbase在hdfs上的目录/apps/hbase/data/archive占用空间过大,导致不停地发出hdfs空间使用率告警。【问题】告警信息alert:datanode_storageistriggered告警信息表明某个或某些datanode的HDFS存储空间使用率已超过阈值(我们设置的是80%),需要清理。[hdfs@master-2r
hbase集群archive目录过大问题处理
spring208208
大数据组件线上问题分析 hbase 数据库 大数据
1.问题现象现场反馈hbase集群/hbase/archive目录过大,大小约为1.52PB现场集群已经清理掉2个月以前的snapshot文件,当前archive目录文件仍不能释放现场发现1T以上的archive子目录有211个查看集群hbase配置,hmaster堆栈大小20GB,hmaster清理周期5分钟查看hmaster进程分配内存占用6G上下问题分析HMaster内存估算,假如/hbas
在mac上如何配置clion使用googletest进行测试
rd_cheng
c++ c++ clion googletest gtest
1、下载googletest并且编译wgethttps://github.com/google/googletest/archive/release-1.8.0.tar.gz&&\tarzxfrelease-1.8.0.tar.gz&&\rm-frelease-1.8.0.tar.gz&&\cdgoogletest-release-1.8.0&&\cmakeconfigure.&&\make&&\
Hive JDBC 大数据查询场景下的 Socket 读超时问题及实战解决方案
窝窝和牛牛
大数据 hive hadoop
文章目录HiveJDBC大数据查询场景下的Socket读超时问题及实战解决方案问题背景️解决方案方案一:通过JDBCURL直接配置超时(推荐)方案二:动态设置全局loginTimeout(兼容旧版本)总结与建议HiveJDBC大数据查询场景下的Socket读超时问题及实战解决方案问题背景在使用HiveJDBC执行查询时,偶发SocketTimeoutException异常,堆栈显示在ResultS
ASIHTTPRequest类库简介和使用说明
从小爱吃苹果干
iOS ASIHttpRequest ASIHTTPRequest
一、简介原文链接http://www.cnblogs.com/dotey/archive/2011/05/10/2041966.html1.下载源码官方网站:http://allseeing-i.com/ASIHTTPRequest/。可以从上面下载到最新源码,以及获取到相关的资料。2.概况使用iOSSDK中的HTTP网络请求API,相当的复杂,调用很繁琐,ASIHTTPRequest就是一个对C
查看归档日志及rman备份文件
大叶梧桐
LINUX 归档日志 man备份
[root@his1/]#ls----查看**/**根目录下的文件archivebootdevhomelib64mediamntoptrmansbinsrvtmpusrbincgroupetcliblost+foundmiscnetprocrootselinuxsysu01var[root@his1/]#cdarchive/------进入archive/[root@his1archive]#ls
Ubuntu系统中下载安装使用Anaconda
xxxn1102_
ubuntu ubuntu conda
文章目录一、下载二、安装1、上传安装文件2、阅读安装协议3、确认安装协议4、确认安装位置5、初始化Anaconda6、查看是否安装成功三、base环境四、Anaconda管理虚拟环境一、下载官网下载地址:https://www.anaconda.com/download中科大镜像源官网:https://mirrors.ustc.edu.cn/anaconda/archive/以上两个网址都可下载,
达梦数据库备份
huazhixuthink
数据库 oracle sql
达梦数据库联机在线备份操作指南一、基础条件与准备开启归档模式:联机备份必须处于归档模式下,否则无法执行。需通过disql工具执行以下操作:alterdatabasemount;alterdatabaseARCHIVELOG;例子:[dmdba@server~]$cd/opt/dmdbms/bin[dmdba@serverbin]$./disqlSYSDBA/'"Dameng@123"':5236
基于hive的电信离线用户的行为分析系统
赵谨言
论文 经验分享 毕业设计
标题:基于hive的电信离线用户的行为分析系统内容:1.摘要随着电信行业的快速发展,用户行为数据呈现出海量、复杂的特点。为了深入了解用户行为模式,提升电信服务质量和精准营销能力,本研究旨在构建基于Hive的电信离线用户行为分析系统。通过收集电信用户的通话记录、上网行为、短信使用等多源数据,利用Hive数据仓库工具进行数据存储和处理,采用数据挖掘和机器学习算法对用户行为进行分析。实验结果表明,该系统
安装httpd
m0_74536424
Linux学习笔记 apache linux 网络
安装httpd1.源码编译安装//下载依赖包[root@openEulter-1~]#dnf-yinstallgccgcc-c++makeapr-*pcre-develredhat-rpm-config...安装过程省略...Complete!//下载软件包[root@openEulter-1~]#wgethttps://archive.apache.org/dist/httpd/httpd-2.
数据分析学习目录
且行且安~
数据分析进阶之路 # 数据分析目录 数据分析
在未来5个月里,将会陪伴大家一起来学习关于数据分析的相关内容,包括从数据思维,数据工具(Excel,Mysql,Hive,Python),数据方法论,数据展示(Tableau,BI),数据挖掘、数据实战项目一整套的内容,同步会将可能用到的以及有用的知识点整理出来。内容会慢慢更新。如下为数据分析的整个目录一、数据分析思维与方法论1.1、从0-1搭建指标体系、用户标签体系1.1.1、指标体系搭建-专项
Python进阶--多线程
桔子code
Python笔记本 多线程 python
原文链接:http://www.juzicode.com/archives/841在《Python进阶教程m9–网络通信–socket通信》中我们实现了一个socket服务端和客户端通信的例子,这个例子中服务端需要等待客户端发送消息后才能返回消息给客户端,在客户端没有发送消息时,服务端一直在data=connet.recv(1024)上被阻塞住,直到等到客户端发来消息才能做下一步的动作。但是在实际
安装mysql
大霞上仙
数据库 mysql 数据库
1、安装数据库下载链接https://downloads.mysql.com/archives/community/下载zip安装包,解压到某个路径下,将bin文件夹添加到系统环境变量。然后终端输入指令mysql--version验证2、初始化数据库打开命令提示符(以管理员身份)。导航到你的MySQL目录的bin文件夹(例如cdC:\mysql\bin)。basedir路径下新建my.ini文件中
Databend 产品月报(2025年2月)
数据库
很高兴为您带来Databend2025年2月的最新更新、新功能和改进!我们希望这些增强功能对您有所帮助,并期待您的反馈。从MySQL迁移到DatabendDatabend推荐使用db-archiver进行MySQL批量迁移,使用FlinkCDC进行实时变更数据捕获(CDC)迁移。教程已更新:使用db-archiver从MySQL迁移使用FlinkCDC从MySQL迁移设置会话标签现在,您可以为会话
doris: Hive
向阳1218
大数据 hive hadoop 数据仓库 doris
自2.1.3版本开始,ApacheDoris支持对Hive的DDL和DML操作。用户可以直接通过ApacheDoris在Hive中创建库表,并将数据写入到Hive表中。通过该功能,用户可以通过ApacheDoris对Hive进行完整的数据查询和写入操作,进一步帮助用户简化湖仓一体架构。本文介绍在ApacheDoris中支持的Hive操作,语法和使用须知。提示这是一个实验功能。提示使用前,请先设置:
hive-DML语法(超级详细)
研发咨询顾问
核心库-大数据 hive hadoop 数据仓库
N.0变量使用setwindow_day=50--定义变量select${hiveconf:window_day}--使用变量N.1单表查询语句N.1.1语法
Hive SQL 优化
大数据侠客
大数据 相关技术 文档总结 hive sql 性能优化
标题一、HIVESQL执##标题行顺序了解hivesql的执行顺序,有助于写出更高质量的代码。第一步:确定数据源,进行表的查询和加载from(left/right/inner/outner)joinon第二步:过滤数据,进行条件筛选wheregroupbyhaving第三步:查询数据select第四步:显示数据distinctorderbylimitunion/unionallSql:select
Hive--桶表
XK&RM
Hive hive
目录1.为什么要使用桶表???2.桶表分桶规则3.桶表的创建3.1DLL3.2数据3.3DML3.4查看桶表里面的数据3.5临时表创建并加载数据3.6把临时表的数据加载到桶表里面4.桶表的查询4.1桶表查询全表的数据4.2桶表查看第一个桶里面的数据4.3查看第二个桶里面的数据4.4查看第三个桶里面的数据4.5查看桶表固定行数据4.6桶表查询语法4.7其他查询5桶表、分区表的区别6两个桶表之间的Jo
HIVE的执行计划实操
不爱学习的小枫
大数据 hive 大数据
什么是执行计划所谓执行计划,顾名思义,就是对一个查询任务(sql),做出一份怎样去完成任务的详细方案。举个生活中的例子,我从上海要去新疆,我可以选择坐飞机、坐高铁、坐火车,甚至于自驾。具体到线路更是五花八门,现在我准备选择自驾了,具体什么路线怎样去划算(时间&费用),这是一件值得考究的事情。HIVE(我们的自驾工具)提供了EXPLAIN命令来展示一个查询的执行计划(什么路线),这个执行计划对于我们
hive alter table add columns 是否使用 cascade 的方案
houzhizhen
hive hive
结论altertablexxxaddcolumns时加上cascade时,会把所有的分区都加上此字段。如果不加则只有新的分区会加上此字段,旧的分区没有此字段,即便数据文件里有对应的数据,也不能显示内容。如果分区都是insertoverwrite生成的,并且旧分区的数据不再重新生成,可以在addcolumns不用cascade,这样旧的分区对应的列显示null。新的分区正常显示新增的列。如果分区都是
Hive Exception: Too many counters: 2001 max=2000 的解决方法
houzhizhen
hive hive hadoop big data
在hive任务的执行过程中,可能出现Toomanycounters的异常。如果执行引擎时tez,则说明当前作业的counters数量超过tez默认的counters限制。Exception:Toomanycounters:2001max=2000atorg.apache.tez.common.counters.Limits.checkCounters(Limits.java:88)atorg.ap
Hive 3.1 在 metastore 运行的 remote threads
houzhizhen
hive hive hadoop 数据仓库
Remotethreads是仅当Hivemetastore作为单独的服务运行是启动,请求需要开启compactor。有以下几种:1.AcidOpenTxnsCounterService统计当前open的事务数从表TXNS中统计状态为open的事务。此事务数量可以再hivemetrics中。2.AcidHouseKeeperService定期调用txnHandler.performTimeOuts(
通过spark-redshift工具包读取redshift上的表
stark_summer
spark spark redshift parquet api 数据
spark数据源API在spark1.2以后,开始提供插件诗的机制,并与各种结构化数据源整合。spark用户可以读取各种各样数据源的数据,比如Hive表、JSON文件、列式的Parquet表、以及其他表。通过spark包可以获取第三方数据源。而这篇文章主要讨论spark新的数据源,通过spark-redshift包,去访问AmazonRedshift服务。spark-redshift包主要由Dat
UBuntu 软件安装
denlee
Linux ubuntu deb windows firefox linux 工具
一。先安装中文包,这个我就不多说了,谁都会装。在“语言支持”中选中文就行了二。设置更新源,更新系统。sudoapt-getupdatesudoapt-getdist-upgradesudoapt-getupgrade-y有一个简单办法可以使更新速度更快,把以前更新的时候下载的软件包备份一下,把var/cache/apt/archives/下面的所有deb包放在另外的分区下,建一个文件夹,比如bei
初学者如何用 Python 写第一个爬虫?
ADFVBM
面试 学习路线 阿里巴巴 python 爬虫 开发语言
??欢迎来到我的博客!非常高兴能在这里与您相遇。在这里,您不仅能获得有趣的技术分享,还能感受到轻松愉快的氛围。无论您是编程新手,还是资深开发者,都能在这里找到属于您的知识宝藏,学习和成长。??博客内容包括:Java核心技术与微服务:涵盖Java基础、JVM、并发编程、Redis、Kafka、Spring等,帮助您全面掌握企业级开发技术。大数据技术:涵盖Hadoop(HDFS)、Hive、Spark
Hive之正则表达式
三生暮雨渡瀟瀟
hive hive 正则表达式
Hive版本:hive-3.1.2目录一、Hive的正则表达式概述1.1字符集合1.2边界集合1.3量词(重复次数)集合1.4转义操作符1.5运算符优先级二、Hive正则表达式案例2.1like2.2rlike2.3regexp2.4regexp_replace正则替换2.5regexp_extract正则提取2.6、hive实现Oracle中的REGEXP_SUBSTR三、完整代码示例场景:清洗
java的(PO,VO,TO,BO,DAO,POJO)
Cb123456
VO TO BO POJO DAO
转:
http://www.cnblogs.com/yxnchinahlj/archive/2012/02/24/2366110.html
-------------------------------------------------------------------
O/R Mapping 是 Object Relational Mapping(对象关系映
spring ioc原理(看完后大家可以自己写一个spring)
aijuans
spring
最近,买了本Spring入门书:spring In Action 。大致浏览了下感觉还不错。就是入门了点。Manning的书还是不错的,我虽然不像哪些只看Manning书的人那样专注于Manning,但怀着崇敬 的心情和激情通览了一遍。又一次接受了IOC 、DI、AOP等Spring核心概念。 先就IOC和DI谈一点我的看法。IO
MyEclipse 2014中Customize Persperctive设置无效的解决方法
Kai_Ge
MyEclipse2014
高高兴兴下载个MyEclipse2014,发现工具条上多了个手机开发的按钮,心生不爽就想弄掉他!
结果发现Customize Persperctive失效!!
有说更新下就好了,可是国内Myeclipse访问不了,何谈更新...
so~这里提供了更新后的一下jar包,给大家使用!
1、将9个jar复制到myeclipse安装目录\plugins中
2、删除和这9个jar同包名但是版本号较
SpringMvc上传
120153216
springMVC
@RequestMapping(value = WebUrlConstant.UPLOADFILE)
@ResponseBody
public Map<String, Object> uploadFile(HttpServletRequest request,HttpServletResponse httpresponse) {
try {
//
Javascript----HTML DOM 事件
何必如此
JavaScript html Web
HTML DOM 事件允许Javascript在HTML文档元素中注册不同事件处理程序。
事件通常与函数结合使用,函数不会在事件发生前被执行!
注:DOM: 指明使用的 DOM 属性级别。
1.鼠标事件
属性
动态绑定和删除onclick事件
357029540
JavaScript jquery
因为对JQUERY和JS的动态绑定事件的不熟悉,今天花了好久的时间才把动态绑定和删除onclick事件搞定!现在分享下我的过程。
在我的查询页面,我将我的onclick事件绑定到了tr标签上同时传入当前行(this值)参数,这样可以在点击行上的任意地方时可以选中checkbox,但是在我的某一列上也有一个onclick事件是用于下载附件的,当
HttpClient|HttpClient请求详解
7454103
apache 应用服务器 网络协议 网络应用 Security
HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。本文首先介绍 HTTPClient,然后根据作者实际工作经验给出了一些常见问题的解决方法。HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需
递归 逐层统计树形结构数据
darkranger
数据结构
将集合递归获取树形结构:
/**
*
* 递归获取数据
* @param alist:所有分类
* @param subjname:对应统计的项目名称
* @param pk:对应项目主键
* @param reportList: 最后统计的结果集
* @param count:项目级别
*/
public void getReportVO(Arr
访问WEB-INF下使用frameset标签页面出错的原因
aijuans
struts2
<frameset rows="61,*,24" cols="*" framespacing="0" frameborder="no" border="0">
MAVEN常用命令
avords
Maven库:
http://repo2.maven.org/maven2/
Maven依赖查询:
http://mvnrepository.com/
Maven常用命令: 1. 创建Maven的普通java项目: mvn archetype:create -DgroupId=packageName
PHP如果自带一个小型的web服务器就好了
houxinyou
apache 应用服务器 Web PHP 脚本
最近单位用PHP做网站,感觉PHP挺好的,不过有一些地方不太习惯,比如,环境搭建。PHP本身就是一个网站后台脚本,但用PHP做程序时还要下载apache,配置起来也不太很方便,虽然有好多配置好的apache+php+mysq的环境,但用起来总是心里不太舒服,因为我要的只是一个开发环境,如果是真实的运行环境,下个apahe也无所谓,但只是一个开发环境,总有一种杀鸡用牛刀的感觉。如果php自己的程序中
NoSQL数据库之Redis数据库管理(list类型)
bijian1013
redis 数据库 NoSQL
3.list类型及操作
List是一个链表结构,主要功能是push、pop、获取一个范围的所有值等等,操作key理解为链表的名字。Redis的list类型其实就是一个每个子元素都是string类型的双向链表。我们可以通过push、pop操作从链表的头部或者尾部添加删除元素,这样list既可以作为栈,又可以作为队列。
&nbs
谁在用Hadoop?
bingyingao
hadoop 数据挖掘 公司 应用场景
Hadoop技术的应用已经十分广泛了,而我是最近才开始对它有所了解,它在大数据领域的出色表现也让我产生了兴趣。浏览了他的官网,其中有一个页面专门介绍目前世界上有哪些公司在用Hadoop,这些公司涵盖各行各业,不乏一些大公司如alibaba,ebay,amazon,google,facebook,adobe等,主要用于日志分析、数据挖掘、机器学习、构建索引、业务报表等场景,这更加激发了学习它的热情。
【Spark七十六】Spark计算结果存到MySQL
bit1129
mysql
package spark.examples.db
import java.sql.{PreparedStatement, Connection, DriverManager}
import com.mysql.jdbc.Driver
import org.apache.spark.{SparkContext, SparkConf}
object SparkMySQLInteg
Scala: JVM上的函数编程
bookjovi
scala erlang haskell
说Scala是JVM上的函数编程一点也不为过,Scala把面向对象和函数型编程这两种主流编程范式结合了起来,对于熟悉各种编程范式的人而言Scala并没有带来太多革新的编程思想,scala主要的有点在于Java庞大的package优势,这样也就弥补了JVM平台上函数型编程的缺失,MS家.net上已经有了F#,JVM怎么能不跟上呢?
对本人而言
jar打成exe
bro_feng
java jar exe
今天要把jar包打成exe,jsmooth和exe4j都用了。
遇见几个问题。记录一下。
两个软件都很好使,网上都有图片教程,都挺不错。
首先肯定是要用自己的jre的,不然不能通用,其次别忘了把需要的lib放到classPath中。
困扰我很久的一个问题是,我自己打包成功后,在一个同事的没有装jdk的电脑上运行,就是不行,报错jvm.dll为无效的windows映像,如截图
最后发现
读《研磨设计模式》-代码笔记-策略模式-Strategy
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
/*
策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化
简单理解:
1、将不同的策略提炼出一个共同接口。这是容易的,因为不同的策略,只是算法不同,需要传递的参数
cmd命令值cvfM命令
chenyu19891124
cmd
cmd命令还真是强大啊。今天发现jar -cvfM aa.rar @aaalist 就这行命令可以根据aaalist取出相应的文件
例如:
在d:\workspace\prpall\test.java 有这样一个文件,现在想要将这个文件打成一个包。运行如下命令即可比如在d:\wor
OpenJWeb(1.8) Java Web应用快速开发平台
comsci
java 框架 Web 项目管理 企业应用
OpenJWeb(1.8) Java Web应用快速开发平台的作者是我们技术联盟的成员,他最近推出了新版本的快速应用开发平台 OpenJWeb(1.8),我帮他做做宣传
OpenJWeb快速开发平台以快速开发为核心,整合先进的java 开源框架,本着自主开发+应用集成相结合的原则,旨在为政府、企事业单位、软件公司等平台用户提供一个架构透
Python 报错:IndentationError: unexpected indent
daizj
python tab 空格 缩进
IndentationError: unexpected indent 是缩进的问题,也有可能是tab和空格混用啦
Python开发者有意让违反了缩进规则的程序不能通过编译,以此来强制程序员养成良好的编程习惯。并且在Python语言里,缩进而非花括号或者某种关键字,被用于表示语句块的开始和退出。增加缩进表示语句块的开
HttpClient 超时设置
dongwei_6688
httpclient
HttpClient中的超时设置包含两个部分:
1. 建立连接超时,是指在httpclient客户端和服务器端建立连接过程中允许的最大等待时间
2. 读取数据超时,是指在建立连接后,等待读取服务器端的响应数据时允许的最大等待时间
在HttpClient 4.x中如下设置:
HttpClient httpclient = new DefaultHttpC
小鱼与波浪
dcj3sjt126com
一条小鱼游出水面看蓝天,偶然间遇到了波浪。 小鱼便与波浪在海面上游戏,随着波浪上下起伏、汹涌前进。 小鱼在波浪里兴奋得大叫:“你每天都过着这么刺激的生活吗?简直太棒了。” 波浪说:“岂只每天过这样的生活,几乎每一刻都这么刺激!还有更刺激的,要有潮汐变化,或者狂风暴雨,那才是兴奋得心脏都会跳出来。” 小鱼说:“真希望我也能变成一个波浪,每天随着风雨、潮汐流动,不知道有多么好!” 很快,小鱼
Error Code: 1175 You are using safe update mode and you tried to update a table
dcj3sjt126com
mysql
快速高效用:SET SQL_SAFE_UPDATES = 0;下面的就不要看了!
今日用MySQL Workbench进行数据库的管理更新时,执行一个更新的语句碰到以下错误提示:
Error Code: 1175
You are using safe update mode and you tried to update a table without a WHERE that
枚举类型详细介绍及方法定义
gaomysion
enum javaee
转发
http://developer.51cto.com/art/201107/275031.htm
枚举其实就是一种类型,跟int, char 这种差不多,就是定义变量时限制输入的,你只能够赋enum里面规定的值。建议大家可以看看,这两篇文章,《java枚举类型入门》和《C++的中的结构体和枚举》,供大家参考。
枚举类型是JDK5.0的新特征。Sun引进了一个全新的关键字enum
Merge Sorted Array
hcx2013
array
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.
Note:You may assume that nums1 has enough space (size that is
Expression Language 3.0新特性
jinnianshilongnian
el 3.0
Expression Language 3.0表达式语言规范最终版从2013-4-29发布到现在已经非常久的时间了;目前如Tomcat 8、Jetty 9、GlasshFish 4已经支持EL 3.0。新特性包括:如字符串拼接操作符、赋值、分号操作符、对象方法调用、Lambda表达式、静态字段/方法调用、构造器调用、Java8集合操作。目前Glassfish 4/Jetty实现最好,对大多数新特性
超越算法来看待个性化推荐
liyonghui160com
超越算法来看待个性化推荐
一提到个性化推荐,大家一般会想到协同过滤、文本相似等推荐算法,或是更高阶的模型推荐算法,百度的张栋说过,推荐40%取决于UI、30%取决于数据、20%取决于背景知识,虽然本人不是很认同这种比例,但推荐系统中,推荐算法起的作用起的作用是非常有限的。
就像任何
写给Javascript初学者的小小建议
pda158
JavaScript
一般初学JavaScript的时候最头痛的就是浏览器兼容问题。在Firefox下面好好的代码放到IE就不能显示了,又或者是在IE能正常显示的代码在firefox又报错了。 如果你正初学JavaScript并有着一样的处境的话建议你:初学JavaScript的时候无视DOM和BOM的兼容性,将更多的时间花在 了解语言本身(ECMAScript)。只在特定浏览器编写代码(Chrome/Fi
Java 枚举
ShihLei
java enum 枚举
注:文章内容大量借鉴使用网上的资料,可惜没有记录参考地址,只能再传对作者说声抱歉并表示感谢!
一 基础 1)语法
枚举类型只能有私有构造器(这样做可以保证客户代码没有办法新建一个enum的实例)
枚举实例必须最先定义
2)特性
&nb
Java SE 6 HotSpot虚拟机的垃圾回收机制
uuhorse
java HotSpot GC 垃圾回收 VM
官方资料,关于Java SE 6 HotSpot虚拟机的garbage Collection,非常全,英文。
http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html
Java SE 6 HotSpot[tm] Virtual Machine Garbage Collection Tuning
&