1

私はSparkを初めて使用しています。私は、推奨エンジンのために、疎な行列にユーザIDのitem-id行列を作成したいと考えています。私はこれをPythonでどのように行うのか知っています。 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))) 
関連する問題