從hive資料表中讀取特征資料,為了使用minmaxscale歸一化操作,需要將特征轉換成vector型別,就有了一下代碼:
DiskLevel=StorageLevel.DISK_ONLY
udfunction=udf(lambda column: Vectors.dense(column),VectorUDT())
spark.sql("use itemRecommend")
OriginalFeatures=spark.sql("select * from feature_table")
columns=OriginalFeatures.columns
VectorFeatures=OriginalFeatures
i=0
for column in columns:
if column != "tag":
i=i+1
print(column)
VectorFeatures=VectorFeatures.withColumn(column,udfunction(VectorFeatures[column]))
#VectorFeatures.persist(storageLevel=DiskLevel)
if i==20:
i=0
VectorFeatures.persist(storageLevel=DiskLevel)
VectorFeatures.count()
break
由于特征屬性較多,所以想每20個屬性persit一次,但是每次persist之后 VectorFeatures 資料都變成了0,很費解,求指導。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/72692.html
標籤:Spark
