Python pyspark.ml.stat.Summarizer能否返回稀疏向量结果?

Python pyspark.ml.stat.Summarizer能否返回稀疏向量结果?,python,apache-spark,pyspark,Python,Apache Spark,Pyspark,使用pyspark.ml.stat.Summarizer计算稀疏向量的聚合返回密集向量结果-有没有办法强制执行稀疏向量操作 (仅仅转换结果不是一个好的解决方案,因为中间结果将浪费大量资源) 要复制的代码: import pyspark from pyspark.sql.functions import col from pyspark.ml.stat import Summarizer from pyspark.ml.linalg import SparseVector, DenseVector

使用
pyspark.ml.stat.Summarizer
计算稀疏向量的聚合返回密集向量结果-有没有办法强制执行稀疏向量操作

(仅仅转换结果不是一个好的解决方案,因为中间结果将浪费大量资源)

要复制的代码:

import pyspark
from pyspark.sql.functions import col
from pyspark.ml.stat import Summarizer
from pyspark.ml.linalg import SparseVector, DenseVector

sc = pyspark.SparkContext.getOrCreate()
sql_context = pyspark.SQLContext(sc)

df = sc.parallelize([ ( SparseVector(100, {1: 1.0}),)]).toDF(['v'])
print(df.head())
print(df.select(Summarizer.mean(col('v'))).head())
输出:

Row(v=SparseVector(100, {1: 1.0})) 
Row(mean(v)=DenseVector([0.0, 1.0,
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]))
编辑 聚合稀疏向量的另一种实现方式也很重要