добавить столбцы со случайными значениями в фрейм данных pyspark - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть фрейм данных pyspark df с двумя существующими столбцами name и birthdate, для которых я хочу перезаписать значения случайными значениями.

Для столбца name Я хочу получить строку со случайным набором букв фиксированной длины (скажем, 10). Строка должна быть рандомизирована для каждой строки, чтобы все строки не получали одинаковую строку.

для столбца birthdate Я хочу строку в формате YYYY-MM-DD. Я хочу, чтобы каждая строка имела случайное значение между 1960-01-01 и 2019-01-01.

Как мне этого добиться?

1 Ответ

0 голосов
/ 26 апреля 2019

Вы можете создавать случайные строки с

''.join(random.choice(string.ascii_lowercase) for x in range(size))

и случайные даты с

month = random.randint(1, 12)
str(random.randint(1960, 2018)) + '-' + str(month)+'-' + (str(random.randint(1, 28)) if month == 2 else str(random.randint(1, 30)) if month % 2 == 0 else str(random.randint(1, 31)))

не забудьте import random и import string.

Чтобы создать массив с формой кадра данных, создайте numpy.ndarray с тем же размером

import numpy as np
arr = np.ndarray(2, len(dataframe[0]))

и чем дать ему правильные значения через цикл

for y in range(len(dataframe[0])):
    arr[0, y] = ''.join(random.choice(string.ascii_lowercase) for x in range(size))
    month = random.randint(1, 12)
    arr[1, y] =str(random.randint(1960, 2018)) + '-' + str(month)+'-' + (str(random.randint(1, 28)) if month == 2 else str(random.randint(1, 30)) if month % 2 == 0 else str(random.randint(1, 31)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...