Преобразование нескольких столбцов спаркфрейма в один столбец с типом списка - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть фрейм данных Pyspark, как показано ниже.

Time           A      B     C     D

06:37:14       2      3     4     5

И я хочу преобразовать его таким образом для всех строк.Я не хочу использовать Панд, чтобы сделать это.Новый тип столбца должен быть типом списка.

Time             Features

06:37:14        [2,3,4,5]

Как это сделать с помощью Pyspark?

1 Ответ

2 голосов
/ 17 апреля 2019

Как я уже описывал в комментарии, когда у вас есть фиксированное количество столбцов, которое вы знаете заранее, вы можете просто объединить значения в новом столбце с withColumn, а если вам нужен массив, вы можете использовать array

df1= sqlContext.createDataFrame([("06:37:14", '2', '3', '4', '5')], ['Time', 'A', 'B', 'C', 'D'])
df1.withColumn("Features", array("A","B","C","D")).drop("A","B","C","D").show(truncate=False)

Выход:

+--------+------------+
|Time    |Features    |
+--------+------------+
|06:37:14|[2, 3, 4, 5]|
+--------+------------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...