Как сделать нулевую матрицу размером n * k, используя pyspark? - PullRequest
0 голосов
/ 09 октября 2019

У нас есть требование, если для какого-то вычисления в матрице pyspark создается n * n матрицы. С помощью pyspark мы можем попытаться сделать это, как показано ниже:

similarity_matrix = np.zeros(shape=(data1.count(),data1.count()))

similarity_matrix = spark.createDataFrame(similarity_matrix)

Здесь данные - это наш кадр данных длиной 80K. есть какой-нибудь способ сделать это в pyspark, так как мы получаем ошибку памяти при выполнении этого

1 Ответ

0 голосов
/ 09 октября 2019
size = 80000
schema = StructType([StructField(str(i), IntegerType(), True) for i in range(size)])
rdd = ss.range(size).rdd.map(lambda x: np.zeros(size))
df = ss.createDataFrame(rdd, schema)

или в скале

scala> val df = spark.range(80000).map(s=>new Array[Int](80000))
df: org.apache.spark.sql.Dataset[Array[Int]] = [value: array<int>]

scala> df.first.size
res35: Int = 80000

scala> df.count
res36: Long = 80000
...