0
I이 부족한 점화 dataframe 가지고Pyspark 스파 스 벡터 dataframe을 수집하지 않고 scipy.spare하는
input_cols = [x for x in data.columns if x!='pid']
sparse_vectors = (VectorAssembler(inputCols=input_cols, outputCol="features").transform(data).select("pid", "features"))
In [46]: sparse_vectors.show()
+---------+-------------------+
| pid| features|
+---------+-------------------+
| 65197201| (5,[2],[50239.0])|
| 14040501| (5,[0],[89827.0])|
|887847003| (5,[4],[190560.0])|
|778121903| (5,[3],[95600.0])|
| 20907001|(5,[1],[8727749.0])|
+---------+-------------------+
In [51]: sparse_vectors.dtypes
Out[51]: [('pid', 'string'), ('features', 'vector')]
:
In [50]: data.show()
+---------+-------+---------+-------+-------+--------+
| pid| 111516| 387745|1211811|1857606| 2187005|
+---------+-------+---------+-------+-------+--------+
| 65197201| 0.0| 0.0|50239.0| 0.0| 0.0|
| 14040501|89827.0| 0.0| 0.0| 0.0| 0.0|
|887847003| 0.0| 0.0| 0.0| 0.0|190560.0|
|778121903| 0.0| 0.0| 0.0|95600.0| 0.0|
| 20907001| 0.0|8727749.0| 0.0| 0.0| 0.0|
+---------+-------+---------+-------+-------+--------+
내가 희소 벡터로서 인덱스 ID와 데이터 열이 두 dataframe로 변환을
scipy.sparse 유형 without collecting으로 변환하는 가장 효율적인 방법은 무엇입니까? 큰 행렬로 작업하고 있으므로 선호하는 옵션이 아닙니다.
그렇습니다. scipy를 사용하여 클러스터의 드라이버 노드에서 데이터를 수집하는 스파 스 매트릭스를 쉽게 생성 할 수 있지만 분산 된 방식으로이 작업을 수행하려고합니다. – xv70