doğrulamak için zaman sizin için
User | Product | Rating
1000 | 14780773 | 7.3e-05
1000 | 17229675 | 5.6e-05
(...) (...) (...)
2000 | 17333969 | 0.015
teşekkür gibi bir veri çerçevesi içinde bu bilgileri koymak Nasıl
>>> type(Rec)
<class 'pyspark.rdd.RDD'>
, ben yeniden üretmek aşağıdaki pyspark kodu kullanılan senin RDD
:
from pyspark.mllib.recommendation import Rating
Rec = sc.parallelize([(10000, (Rating(user=10000, product=14780773, rating=7.35695469892999e-05),
Rating(user=10000, product=17229476, rating=5.648606256948921e-05))),
(0, (Rating(user=0, product=16750010, rating=0.04405213492474741),
Rating(user=0, product=17416511, rating=0.019491942665715176))),
(20000, (Rating(user=20000, product=17433348, rating=0.017938298063142653),
Rating(user=20000, product=17333969, rating=0.01505112418739887)))])
Bu RDD, anahtar değer çiftlerinden oluşur. ith Değerlendirme tuples. Sadece kayıtları tutmak için RDD'yi eşleştirmeniz ve ardından her bir öneri için ayrı bir tuple sahip olması için sonuçları patlatmanız gerekir. flatMap(f)
fonksiyon şöyle aşağıdaki iki adımı yoğunlaşacaktır:
[Rating(user=10000, product=14780773, rating=7.35695469892999e-05),
Rating(user=10000, product=17229476, rating=5.648606256948921e-05),
Rating(user=0, product=16750010, rating=0.04405213492474741),
Rating(user=0, product=17416511, rating=0.019491942665715176),
Rating(user=20000, product=17433348, rating=0.017938298063142653),
Rating(user=20000, product=17333969, rating=0.01505112418739887)]
Şimdi bütün gereken bir DataFrame çevirmeye createDataFrame
işlevini kullanmaktır: şeklinde bir RDD sonuçlanır
flatRec = Rec.flatMap(lambda p: p[1])
. Her bir Değerlendirme bölümü bir DataFrame Row'a dönüştürülür ve öğeler etiketlendiğinden, bir şema belirtmenize gerek yoktur.
recDF = sqlContext.createDataFrame(flatRec).show()
çıktısı verir aşağıdaki gibidir:
+-----+--------+--------------------+
| user| product| rating|
+-----+--------+--------------------+
|10000|14780773| 7.35695469892999E-5|
|10000|17229476|5.648606256948921E-5|
| 0|16750010| 0.04405213492474741|
| 0|17416511|0.019491942665715176|
|20000|17433348|0.017938298063142653|
|20000|17333969| 0.01505112418739887|
+-----+--------+--------------------+
gerekli fonksiyon [PySpark dokümanlar kaplı] olduğu (https://spark.apache.org/docs/1.5.2/api/python /pyspark.sql.html). 'CreateDataFrame''e bakın. –