Pyspark.sql.dataframe преобразует данные каждого столбца определенной строки в новый фрейм данных - PullRequest
0 голосов
/ 23 октября 2019

Pyspark.sql.dataframe преобразует данные массива каждого столбца конкретной строки в новый фрейм данных с данными массива в виде отдельных строк

Тип моего фрейма данных:

type(df): pyspark.sql.dataframe.DataFrame

Имеет 3 столбца и 40 строк.

Тип данных столбцов:

df.dtypes:

[('Col1',
  'struct<A:string,B:string,C:string,D:string,E:string>'),
 ('Col2', 'string'),
 ('Col3', 'array<struct<timestamp:bigint,value:double>>')]

Точки импа:

  1. Меня интересует только Кол3 каждой строки.
  2. Всего 40 строк.
  3. Каждый столбец Col3 строки представляет собой массив struct. Этот размер массива для каждой строки превышает 20 000.

Вопрос:

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

Новый фрейм данных для каждой строки будет иметь метку времени и значение из двух столбцов.

Проблемы

  1. Я не знаю, как выбрать каждую строку, используя индекс. Если я сделаю это, то смогу применить функцию explode(), и тогда у меня будет дата-фрейм с двумя столбцами timestamp и значением.

  2. Поскольку я не знаю, «как извлечь каждую строку, используяindex ", поэтому я применил explode() непосредственно к последнему столбцу, какой вид сделал мою работу, но проблема в том, что я потеряю информацию о том, какой индекс в разнесенном фрейме данных заканчивается в конце 1-й строки, в начале 2-й строки и т. д. и т. д.

Пожалуйста, помогите. Как правильно достичь результата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...