как создать новые столбцы со случайными значениями в pyspark? - PullRequest
0 голосов
/ 28 ноября 2018

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

df['business_vertical'] = np.random.choice(['Retail', 'SME', 'Cor'], df.shape[0])

Как мне это сделать в pyspark?

Ответы [ 3 ]

0 голосов
/ 28 ноября 2018

Для случайного числа:

import random
randomnum= random.randint(1000,9999)

или numpy.random.choice

import org.apache.spark.sql.functions.lit
val newdf = df.withColumn("newcol",lit("your-random"))

или: pandas.Series.combine_first

s1 = pd.Series([1, np.nan])
s2 = pd.Series([3, 4])
s1.combine_first(s2)
0 голосов
/ 28 ноября 2018

Просто создайте список значений и затем извлеките их случайным образом:

from pyspark.sql import functions as F

df.withColumn(
  "business_vertical",
  F.array(
    F.lit("Retail"),
    F.lit("SME"),
    F.lit("Cor"),
  ).getItem(
    (F.rand()*3).cast("int")
  )
)
0 голосов
/ 28 ноября 2018

Вы можете использовать pyspark.sql.functions.rand ()

df.withColumn('rand_col', F.rand()).show()  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...