преобразовать матрицу numpy (NxM) в (Nx1) фрейм данных pyspark с N строками и 1 столбцом с данными массива - PullRequest
1 голос
/ 02 июля 2019

Я хотел бы создать фрейм данных pyspark из матрицы NxM NumPy. Этот фрейм данных должен иметь N строк, но только 1 столбец, содержащий данные массива размером (1xM).

Я пытался преобразовать матрицу NxM Numpy в кадр данных Pandas. Однако исходный размер матрицы велик (1M x 2000) с дальнейшими операциями в нисходящем направлении, и я смогу работать, только если смогу создать фрейм данных pyspark для простой матрицы.

например

Я хотел бы преобразовать приведенную ниже матрицу

m = np.array([[1, 2], [11, 22], [111, 222]) 

к фрейму данных pyspark, который выглядит как

+-----+----------+
|index|    array |
+-----+----------+
|    0|    [1, 2]|
|    2|  [11, 22]|
|    3|[111, 222]|
+-----+----------+

1 Ответ

0 голосов
/ 02 июля 2019

Как указано ранее в моем комментарии , вы можете достичь желаемого результата, используя enumerate:

m = np.array([[1, 2], [11, 22], [111, 222]]) 
df = spark.createDataFrame(enumerate(m.tolist()), ["index", "array"])
df.show()
#+-----+----------+
#|index|     array|
#+-----+----------+
#|    0|    [1, 2]|
#|    1|  [11, 22]|
#|    2|[111, 222]|
#+-----+----------+

и соответствующую схему:

df.printSchema()
#root
# |-- index: long (nullable = true)
# |-- array: array (nullable = true)
# |    |-- element: long (containsNull = true)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...