1

나는 Spark를 처음 사용합니다. 나는 권장 엔진을 위해 특별히 사용자 매트릭스 id-item 행렬을 희소 행렬로 만들고 싶다. 나는 파이썬에서 이것을 어떻게 할 것인지를 안다. 어떻게하면 PySpark에서 이것을 할 수 있습니까? 여기 내가 행렬에서 어떻게 했을까? 이제 테이블이 이렇게 생겼습니다. 그와 마찬가지로PySpark에서 스파 스 매트릭스를 만드는 방법은 무엇입니까?

Session ID| Item ID | Rating 
    1   2  1 
    1   3  5 
import numpy as np 

    data=df[['session_id','item_id','rating']].values 
    data 

    rows, row_pos = np.unique(data[:, 0], return_inverse=True) 
    cols, col_pos = np.unique(data[:, 1], return_inverse=True) 

    pivot_table = np.zeros((len(rows), len(cols)), dtype=data.dtype) 
    pivot_table[row_pos, col_pos] = data[:, 2] 
+0

는 스파 스 벡터를 살펴 보자 : https://spark.apache.org/docs/1.1.0/api/python/pyspark.mllib .linalg.SparseVector-class.html – Gopala

답변

2

:

>>> from pyspark.mllib.linalg.distributed import CoordinateMatrix, MatrixEntry 
>>> table = sqlContext.createDataFrame(
...  sc.parallelize([[1, 2, 1], [1, 3, 5]]) 
...) 
>>> mat = CoordinateMatrix(table.rdd.map(lambda row: MatrixEntry(*row)))