spark dataframe persist(disk_only)之后数据都变成了0

菜鸟磊子 2016-10-18 03:54:55
从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,很费解,求指导。
...全文
608 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

1,258

社区成员

发帖
与我相关
我的任务
社区描述
Spark由Scala写成,是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于MapReduce算法实现的分布式计算。
社区管理员
  • Spark
  • shiter
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧