小编shi*_*eng的帖子

Spark - 如何在生产中使用经过培训的推荐模型?

我正在使用Spark来构建推荐系统原型.经过一些教程后,我能够MatrixFactorizationModel从我的数据中训练出来.

然而,Spark mllib训练的模型只是一个Serializable.如何使用此模型为真实用户推荐?我的意思是,如果用户数据增加,我怎样才能将模型保存到某种数据库中或更新它?

例如,由Mahout推荐库训练的模型可以存储到像Redis这样的数据库中,然后我们可以稍后查询推荐的项目列表.但是我们如何才能在Spark中做类似的事情呢?有什么建议吗?

recommendation-engine mahout mahout-recommender apache-spark

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

如何利用Java或Python中的文件系统缓存?

Elasticsearch网站最新博客文章正在讨论其新的1.4 beta版本的功能。

我对它们如何利用文件系统缓存非常好奇:

最新版本增加了对文档值的支持。本质上,doc值提供与内存中字段数据相同的功能,但是它们在索引时间写入磁盘。他们提供的好处是他们只占用很少的堆空间。从磁盘而不是从内存读取Doc值。虽然磁盘访问速度很慢,但是doc值受益于内核的文件系统缓存。与JVM堆不同,文件系统缓存不受32GB限制的约束。通过将字段数据从堆转移到文件系统缓存,可以使用较小的堆,这意味着可以更快地进行垃圾回收,从而获得更稳定的节点。

在此版本之前,doc值比内存中的现场数据要慢得多。此版本中的更改显着提高了性能,使其几乎与内存中的字段数据一样快。

这是否意味着我们可以操纵文件系统缓存的行为,而不是被动地等待来自操作系统的影响?如果是这样,我们如何在正常的应用程序开发中利用文件系统缓存?说,如果我正在编写Python或Java程序,该怎么做?

python java performance caching elasticsearch

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

如何在应用程序中构建小程序(又名tinyapp)框架?

小程序(tiny-app)是一种非常方便且成功的丰富应用程序内容和功能的方式,它丰富应用程序生态系统的能力已经在中国得到了证明\ xe2\x80\x99s 微信和支付宝应用程序。

\n\n

我们希望将此类功能嵌入到我们的应用程序中。然而,大多数可以在网络上搜索到的材料都是关于如何构建/开发小程序,而不是如何在应用程序中构建这样的框架,无论是Android还是iOS。

\n\n

有没有关于如何在应用程序中构建小程序框架的资料/文档?(不是如何构建小程序)

\n

android ios wechat-miniprogram

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

如何实现Android应用的SHARE功能?

有时我们可以看到点击一些"共享"按钮后,会显示一个可共享方式列表.该列表似乎是动态生成的,而不是硬编码的.

例如,我在手机上安装了SpringPad,一些应用程序的共享功能可以通过SpringPad共享内容,但是怎么知道我有SpringPad?

如何实现这样的功能?谢谢.

android

4
推荐指数
1
解决办法
8620
查看次数

getView()的两种实现有什么区别?

任何人都可以解释两种getView()实现之间的区别是什么?

第一个只是检查是否convertView为null; 如果它为null,则膨胀一个新的View对象.然后使用适当的值设置子视图.

@Override
public View getView(int position, View convertView, ViewGroup parent) 
{           
    if(convertView == null)
    {
        LayoutInflater inflater = context.getLayoutInflater();
        convertView = inflater.inflate(R.layout.itemlayout, null, true);
    }   

    ImageView image = (ImageView) convertView.findViewById(R.id.icon);
    TextView text = (TextView) convertView.findViewById(R.id.name);     

    MyItem item = items[position];
    text.setText(item.name);
    if("male".equals(item.gender))
    {
        image.setImageResource(R.drawable.male);
    }
    else if("female".equals(item.gender))
    {
        image.setImageResource(R.drawable.female);
    }

    return convertView;
}
Run Code Online (Sandbox Code Playgroud)

第二个是所谓的"ViewHolder"模式.许多开发人员说这种方法可以节省大量内存和CPU时间.但第一个实现也检查convertView的存在.第一种方法不能节省一些内存吗?谁能更深入,更清楚地解释这两种实现之间的区别?非常感谢.

@Override
public View getView(int position, View convertView, ViewGroup parent) 
{       
    ViewHolder holder;

    View itemView = convertView;
    if(itemView == null)
    {
        LayoutInflater inflater = …
Run Code Online (Sandbox Code Playgroud)

android listview

4
推荐指数
1
解决办法
1081
查看次数

在Python中进行大型矩阵计算的最佳模块?

我正在开发一个简单的推荐系统,并尝试进行一些计算,如SVD,RBM等.

为了更有说服力,我将使用Movielens或Netflix数据集来评估系统的性能.但是,这两个数据集都有超过100万用户和超过1万个项目,所以不可能将所有数据都放入内存.我必须使用一些特定的模块来处理这么大的矩阵.

我知道在一些SciPy的工具可以处理这个问题,并divisi2所使用的python-recsys也似乎是一个不错的选择.或者也许有一些我不知道的更好的工具?

我应该使用哪个模块?有什么建议吗?

python matrix

4
推荐指数
1
解决办法
3121
查看次数

在Scala中将字符串转换为整数的最简洁方法?

在Java中,我可以使用以下两个语句将字符串转换为整数,这可以处理异常:

// we have some string s = "abc"
int num = 0;
try{ num = Integer.parseInt(s); } catch (NumberFormatException ex) {}
Run Code Online (Sandbox Code Playgroud)

但是,我在Scala中找到的方法总是使用try-catch/match-getOrElse如下的方法,它包含几行代码,看起来有点冗长.

// First we have to define a method called "toInt" somewhere else
def toInt(s: String): Option[Int] = {
  try{
    Some(s.toInt)
  } catch {
    case e: NumberFormatException => None
  }
}

// Then I can do the real conversion
val num = toInt(s).getOrElse(0)
Run Code Online (Sandbox Code Playgroud)

这是在Scala中将字符串转换为整数的唯一方法(能够处理异常)还是有更简洁的方法?

java scala number-formatting

4
推荐指数
1
解决办法
2595
查看次数

在 Grails 中制作和自定义 JSON 响应的最佳方法?

我对如何制作/自定义 JSON 响应的这个问题进行了一些调查。有一些方法可以做到这一点:

  1. 使用 JSON 编组;
  2. 使用rest-client插件;
  3. 使用带闭包的 render() 方法;
  4. 自行构建地图并渲染地图。

在 Grails 中制作/自定义 JSON 响应的最佳方法是什么?或者有没有其他方法可以更好地做到这一点?

谢谢:)

grails customization json

3
推荐指数
1
解决办法
1036
查看次数

ElasticSearch中的索引数据相同但存储大小不同?

我正在评估ElasticSearch所需的必要存储大小.但是,我发现在索引同一组数据时,商店大小每次都会变化.

例如,我使用的数据大小为35mb.索引运行了几次,结果存储大小介于76mb~85mb之间,不是固定数字(不可重复?)

有人可以解释一下吗?提前致谢:)

elasticsearch

3
推荐指数
1
解决办法
676
查看次数

Spark - 如何正确处理RDD.map()方法中的错误情况?

我正在尝试使用Spark RDD进行一些文本处理.

输入文件的格式为:

2015-05-20T18:30 <some_url>/?<key1>=<value1>&<key2>=<value2>&...&<keyn>=<valuen>
Run Code Online (Sandbox Code Playgroud)

我想从文本中提取一些字段并将它们转换为CSV格式,如:

<value1>,<value5>,<valuek>,<valuen>
Run Code Online (Sandbox Code Playgroud)

以下代码是我如何做到这一点:

val lines = sc.textFile(s"s3n://${MY_BUCKET}/${MY_FOLDER}/test/*.gz")
val records = lines.map { line =>
    val mp = line.split("&")
                 .map(_.split("="))
                 .filter(_.length >= 2)
                 .map(t => (t(0), t(1))).toMap

    (mp.get("key1"), mp.get("key5"), mp.get("keyk"), mp.get("keyn"))
}
Run Code Online (Sandbox Code Playgroud)

我想知道,如果输入文本的某些行格式错误或无效,则该map()函数无法返回有效值.这在文本处理中应该很常见,处理这个问题的最佳做法是什么?

apache-spark

0
推荐指数
1
解决办法
2860
查看次数