作为一个pyspark使用者,
一直在啃官方文档,
但是官方的样例一直太简单,
我想试着写一些可以拿来用的的样例。
使用pyspark mlib进行频繁集挖掘,
是一个可行的方案,
运行速度上很快
面向大数据,
开发速度很快。
痛苦点在于,
真的很难找到使用者,
也很难找到社群,
国内很少有人懂。
我不会去讲什么fpm的算法,
这不是我需要赘述的,
CSDN上多得是。
在这里我没有写如何去配置zepplin服务器。
只写了如何读取,
如何写入hive库。
from pyspark import SparkContext,SparkConf,StorageLevel
from pyspark.sql import HiveContext
from pyspark.mllib.fpm import FPGrowth
#1.load data
hc = HiveContext(sc)
sql = "select partyno,prodno from testdata"
data = hc.sql(sql)
#2.transform data
data = data.fillna(0,data.columns)
data.count()
trandata =data.map(lamda x:(x[0],x[1]))
pastvalue = trandata.reduceByKey(lambda x,y: x+','+y)
transactions = pastvalue.map(lambda (k,v)): v.split(','))
#3.model
model = FPGrowth.train(transactions,minSupport=0.00001,numPartitions=1)
#4.result
result=model.freqItemsets()
result.toDF().registerTempTable("table1")
hc.sql("create table result as select * from table1")