Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python RDD到多维数组_Python_Apache Spark_Pyspark - Fatal编程技术网

Python RDD到多维数组

Python RDD到多维数组,python,apache-spark,pyspark,Python,Apache Spark,Pyspark,我正在使用spark的python API,我发现一些矩阵操作很有挑战性。我的RDD是长度n(行向量)的一维列表。是否可以将其重塑为sq_root(n)x sq_root(n)大小的矩阵/多维数组 比如说, Vec=[1,2,3,4,5,6,7,8,9] 和期望输出3x3= [[1,2,3] [4,5,6] [7,8,9]] numpy中是否有与重塑等效的工具 条件: n(>5000万)是巨大的,因此排除了使用.collect(), 这个进程可以在多个线程上运行吗 像这样的事情应该是关键:

我正在使用spark的python API,我发现一些矩阵操作很有挑战性。我的RDD是长度n(行向量)的一维列表。是否可以将其重塑为sq_root(n)x sq_root(n)大小的矩阵/多维数组

比如说,

Vec=[1,2,3,4,5,6,7,8,9]
和期望输出3x3=

[[1,2,3]
[4,5,6]
[7,8,9]] 
numpy中是否有与重塑等效的工具

条件: n(>5000万)是巨大的,因此排除了使用.collect(),
这个进程可以在多个线程上运行吗

像这样的事情应该是关键:

rdd = sc.parallelize(xrange(1, 10))
nrow = int(rdd.count() ** 0.5) # Compute number of rows

rows = (rdd.
   zipWithIndex(). # Add index, we assume that data is sorted
   groupBy(lambda (x, i): i / nrow). # Group by row
   # Order by column and drop index
   mapValues(lambda vals: [x for (x, i) in sorted(vals, key=lambda (x, i): i)])))
您可以添加:

from pyspark.mllib.linalg import DenseVector
rows.mapValues(DenseVector)

如果你想要适当的向量。< /P>你是否考虑过分布式矩阵?我认为分布式矩阵只在规模和java中实现而不是Python API?我不正确吗?@肯特卡维。你是对的,PyScess还没有分布式数据结构。