【发布时间】:2017-11-03 05:09:47
【问题描述】:
在此先感谢您提供的任何帮助。我正在做一个项目,对一些非常大的数据集进行一些系统日志异常检测(我们每天汇总约 100gb 的系统日志)。我们选择的方法/道路需要对每个日志消息的标识符矩阵进行奇异分解值。随着我们的进步,我们发现 Spark 2.2 提供了一个 computeSVD 函数(我们使用的是 Python API - 我们知道这在 Scala 和 Java 中可用,但我们的目标是使用 Python),但我们正在运行 Spark 2.1.1 (HortonWorks HDP 2.6.2 分发)。我询问是否升级我们的 2.1.1 版本,但 2.2 版本尚未针对 HDP 进行测试。
我们考虑过直接从 Python 中使用 Numpy 来实现这一点,但我们担心我们会破坏 Spark 的无私性,并且可能会通过脱离 Spark API 来使工作节点超载。 Spark 2.1.1 Python API for SVD 中是否有任何替代方案?任何建议或指示将不胜感激。谢谢!
虽然我在最初的帖子中忘记了另一个 - 有没有一种方法可以主要在 Python API 中编写我们的机器学习,但也许调用我们需要的 Scala 函数,返回结果并继续使用 Python?我不知道这是不是一件事......
【问题讨论】:
-
请不要修改 cmets 中的问题 - 改为编辑原始帖子
-
查看@eliasah 的回答,在 PySpark 中计算 SVD stackoverflow.com/questions/33428589/…
-
看起来很有希望,但我正在努力解决一些问题。由于该帖子引用了 Spark 1.5 并且我们使用的是 2.1.1,因此我正在尝试解决一些问题。我们想使用 pyspark.ml,因为它比 pyspark.mlib 更新,您可以只声明向量的数据帧,但即使大部分功能位于 pyspark.ml 中,RowMatrix 实际上也可以与 pyspark.mlib 一起使用,我们需要向它提供一个向量的 RDD(这将与 RowMatrix 一起使用),但是向量的 RDD 不能很好地与被调用的 PCA 函数(它需要 pyspark.ml 向量)配合使用。
-
第二部分:所以,就像我不能使用 pyspark.ml 向量,因为不加载到 RowMatricies,但我们不能使用 pyspark.mlib 向量,因为它们不起作用调用 PCA 函数。有任何想法吗?也许我们错过了一些简单的东西,我看不到..
标签: apache-spark machine-learning pyspark data-science