Oracle R Enterprise(ORE)KMeans包

时间:2012-05-31 20:33:13

标签: oracle r hadoop

我有一项任务是在SAS服务器上运行K-Means聚类算法但是内存不足。数据集是500G,我知道我可以将其下载以适应内存,但如果我想在整个数据上运行模型,那么Oracle R Enterprise(ORE)会帮我解决问题吗?

关于ORE和ORCH的其他相关问题:

  1. Oracle R Package是否包含任何群集算法?是否有可用的Oracle R软件包列表?
  2. 如果我在Oracle R Enterprise中运行kmeans算法(R CRAN包),是否还会遇到内存问题?
  3. BDA中是否有可用于分布式Hadoop集群的R群集程序包?
  4. 由于

2 个答案:

答案 0 :(得分:2)

你最好的选择是在Hadoop上使用Mahout。 Mahout确实支持K-Means聚类,如here所述,在Hadoop上设置Mahout非常容易。

如果您可以使用少量计算机构建自己的Hadoop群集,则运行Mahout大约需要30分钟左右。当我尝试几天后this blog给了我极大的帮助。

你可以做同样的事情,节省大量的金钱和时间。

我没有谈到使用Oracle R,这只是因为,首先我对Oracle R了解不多但是我知道Hadoop上的Mahout会比其他任何一个更好,因为有很多关于如何在短时间内完成任务的资源。如果您真的在寻找Oracle R,那么这不是答案,否则它确定无疑。

答案 1 :(得分:0)

我几天前刚开始使用ORE,所以我还不是专家,但很容易判断它有K-means功能。请参阅ORE 1.3文档here并搜索ore.odmKMeans函数。我已经检查过,它就在那里。所以你的第一个问题的答案是肯定的 - 在ORE中有一个K-means函数。

关于你关于记忆问题的第二个问题。要使用ORE,您需要拥有一个Oracle数据库 - 甚至更好的是Exadata Oracle机器(这些机器通常具有大约1Tb的内存),并且许多ORE R功能被实现为在数据库级别上作为SQL运行,因此它在数据库上运行并使用比将数据加载到R的内存中更少的内存,甚至那些不使用SQL下推但使用更常规的R方法的函数使用数据库机器的内存,这通常比任何R机器具有更多的内存。老实说,我还没有看过ORE K-means的实现,所以我不知道这个函数是什么情况。