在pyspark中划分矩阵RDD

时间:2016-04-20 09:37:23

标签: python numpy matrix apache-spark pyspark

我正在将一个numpy矩阵转换为分区大小为10的RDD。

rdd.collect()[row_num][0]

这里RDD中的每一行都是一个矩阵对象,我可以使用 elem.autocomplete({ source: list.children().map(function() { return $(this).text(); }).get() 来访问它。 如何将十行分组到每个分区?。之前我曾尝试使用Dense matrix,但无法获得正确的结果。

1 个答案:

答案 0 :(得分:0)

我终于自己写了。 :)。我知道它效率不高,但它可以解决问题并可能在有更好的答案发布之前帮助某人。

def group_rows(rdd):
    rdd_collect = rdd.collect()
    count = 0
    key_count = 0
    result = {"0":[],"1":[],"2":[],"3":[],"4":[],"5":[],"6":[],"7":[],"8":[],"9":[]}
    for i in range(100):
        if count < 10:
            temp_value = result[str(key_count)]
            temp_value.append(rdd_collect[i][0])
            result[str(key_count)] = temp_value
            count += 1
        else:
            count = 0
            key_count += 1
    return result

result = group_rows(e3.rdd)
temp = e3.sc.parallelize(result.items())
sorted(temp.groupByKey().collect())