小编Nav*_*ath的帖子

草案对mercurial提交

我一直定期去由Bitbucket管理的一个mercurial repo.今天,当我像往常一样做出提交时,Bitbucket将提交标记为"草稿"(之前从未发生过).草案提交的任何想法是什么?

mercurial bitbucket

25
推荐指数
3
解决办法
9248
查看次数

MongoDB中的计算分组字段

对于MongoDB文档中的此示例,如何使用MongoTemplate编写查询?

db.sales.aggregate(
   [
      {
        $group : {
           _id : { month: { $month: "$date" }, day: { $dayOfMonth: "$date" }, year: { $year: "$date" } },
           totalPrice: { $sum: { $multiply: [ "$price", "$quantity" ] } },
           averageQuantity: { $avg: "$quantity" },
           count: { $sum: 1 }
        }
      }
   ]
)
Run Code Online (Sandbox Code Playgroud)

或者一般来说,我如何按计算字段分组?

java mongodb spring-data aggregation-framework spring-mongodb

12
推荐指数
1
解决办法
5560
查看次数

无法获得redisTemplate for Spring数据redis的连接

我正在尝试使用Jedis使用Spring数据Redis将消息发布到通道.这是一个非常简单的Java配置:

@Bean(name="jedisConnectionFactory")
JedisConnectionFactory jedisConnectionFactory() {
    JedisConnectionFactory factory = new JedisConnectionFactory();
    factory.setHostName(redisHostName);
    factory.setPort(redisPort);
    factory.setUsePool(true);
    return factory;
}

@Bean(name="redisTemplate")
RedisTemplate<Object, Object> redisTemplate() {
    RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<Object, Object>();
    redisTemplate.setConnectionFactory(jedisConnectionFactory());
    return redisTemplate;
}
Run Code Online (Sandbox Code Playgroud)

其中redisPort = 6379,redisHostName ="localhost".

当我运行以下测试时:

 @Test
public void testRedis(){
    ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
    RedisTemplate<Object,Object> redisTemplate = (RedisTemplate<Object, Object>) context.getBean("redisTemplate");
    redisTemplate.convertAndSend("test", "123");
}
Run Code Online (Sandbox Code Playgroud)

我得到以下stacktrace:

java.lang.ExceptionInInitializerError
at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.getConnection(JedisConnectionFactory.java:252)
at org.springframework.data.redis.connection.jedis.JedisConnectionFactory.getConnection(JedisConnectionFactory.java:58)
at org.springframework.data.redis.core.RedisConnectionUtils.doGetConnection(RedisConnectionUtils.java:128)
at org.springframework.data.redis.core.RedisConnectionUtils.getConnection(RedisConnectionUtils.java:91)
at org.springframework.data.redis.core.RedisConnectionUtils.getConnection(RedisConnectionUtils.java:78)
at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:178)
at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:153)
at org.springframework.data.redis.core.RedisTemplate.convertAndSend(RedisTemplate.java:676)
at com.jobvite.realtimeanalytics.redis.RedisTest.testRedis(RedisTest.java:22)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) …
Run Code Online (Sandbox Code Playgroud)

spring-data spring-data-redis

6
推荐指数
2
解决办法
2万
查看次数

可以通过属性文件设置Spring活动配置文件吗?

我希望能够从属性文件中读取活动配置文件,以便可以在基于Spring MVC的Web应用程序中使用不同的配置文件配置不同的环境(dev,prod等).我知道可以通过JVM参数或系统属性设置活动配置文件.但我想通过属性文件来代替.关键是我不静态地知道活动配置文件,而是想从属性文件中读取它.看起来这是不可能的.例如,如果我在application.properties中有'spring.profiles.active = dev',并允许在override.properties中覆盖它,如下所示:

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="ignoreResourceNotFound" value="true" />
    <property name="locations">
        <list>
            <value>classpath:/application.properties</value>
            <value>file:/overrides.properties</value>
        </list>
    </property>
</bean> 
Run Code Online (Sandbox Code Playgroud)

该配置文件未在环境中被拾取.我想这是因为在bean初始化之前正在检查活动的配置文件,因此不尊重在属性文件中设置的属性.我看到的唯一另一个选项是实现一个ApplicationContextInitializer,它将按优先级顺序加载这些属性文件(如果存在则覆盖首先是override.properties,否则是application.properties)并在context.getEnvironment()中设置值.有没有更好的方法从属性文件中执行此操作?

spring spring-mvc spring-profiles spring-properties

6
推荐指数
1
解决办法
1915
查看次数

Spark MLLib Collaborative Filtering与新用户

我正在尝试在Spark中实现的Collaborative Filtering算法,并且遇到了以下问题:

假设我使用以下数据训练模型:

u1|p1|3
u1|p2|3
u2|p1|2
u2|p2|3
Run Code Online (Sandbox Code Playgroud)

现在如果我用以下数据测试它:

u1|p1|1
u3|p1|2
u3|p2|3
Run Code Online (Sandbox Code Playgroud)

我从未看到用户'u3'的任何评级,大概是因为该用户没有出现在训练数据中.这是因为冷启动问题吗?我的印象是这个问题只适用于新产品.在这种情况下,我预计会对'u3'进行预测,因为训练数据中的'u1'和'u2'具有与'u3'类似的评级信息.这是基于模型和基于内存的协同过滤之间的区别吗?

collaborative-filtering apache-spark apache-spark-mllib

5
推荐指数
1
解决办法
1216
查看次数