spark调用python算法_利用Spark-mllab进行聚类,分类,回归分析的代码实现(python)

Spark作为一种开源集群计算环境,具有分布式的快速数据处理能力。而Spark中的Mllib定义了各种各样用于机器学习的数据结构以及算法。Python具有Spark的API。需要注意的是,Spark中,所有数据的处理都是基于RDD的。

首先举一个聚类方面的详细应用例子Kmeans:

下面代码是一些基本步骤,包括外部数据,RDD预处理,训练模型,预测。

#coding:utf-8

from numpy import array

from math import sqrt

from pyspark import SparkContext

from pyspark.mllib.clustering import KMeans, KMeansModel

if __name__ == "__main__":

sc = SparkContext(appName="KMeansExample",master='local') # SparkContext

# 读取并处理数据

data = sc.textFile("./kmeans_data.txt")

print data.collect()

parsedData = data.map(lambda line: array([float(x) for x in line.split(' ')]))

# 训练数据

print parsedData.collect()

clusters = KMeans.train(parsedData, k=2, maxIterations=10,

runs=10, initializationMode="random")

#求方差之和

def error(point):

center = clusters.centers[clusters.predict(point)]

return sqrt(sum([x**2 for x in (point - center)]))

WSSSE = parsedData.map(lambda point: error(point)).reduce(lambda x, y: x + y)

print("Within Set Sum of Squared Error = " + str(WSSSE))

#聚类结果

def sort(point):

你可能感兴趣的:(spark调用python算法)