Spark与python - numpy很慢

时间:2015-12-07 09:04:52

标签: python performance numpy apache-spark pyspark

我想计算1轮K-Means。 我有k个中心,我只想让输入的每个点知道谁是最接近它的中心 另外,我想知道距离的平方和(K-Means的成本)。

代码如下:

    points = sc.textFile("s3_url",20).map(parseVector).cache()
    closest = points.map(lambda p: (distanceToClosest(p, means)))
    cost = closest.reduce(lambda a, b: a+b)

means变量是硬连线的。

parseVector就是这样:

def parseVector(line):
    return np.fromstring(line, dtype=np.float64, sep=" ")

和distanceToClosest是:

def distanceToClosest(p, centers):
    closest = float("+inf")
    for i in range(len(centers)):
        tempDist = np.sum((p - centers[i]) ** 2)
        if tempDist < closest:
            closest = tempDist
    return closest

我的输入只有5GB而且我使用的是10个内核,而且这个简单的操作需要10 + min!当我期待1分钟时

0 个答案:

没有答案