2016-06-29 1 views
0

Я новичок в Pyspark, и я пытаюсь добавить новый столбец к существующему файловому кадру. Новый столбец должен содержать только 4 фиксированных значения (например, 1,2,3,4), и я хотел бы случайным образом выбрать одно из значений для каждой строки.Добавить столбец в существующую фреймворк со случайными фиксированными значениями в Pyspark

Как я могу это сделать?

ответ

1

Pyspark dataframes неизменяемы, поэтому вам нужно вернуть новый (например, вы не можете просто назначить ему так, как вы можете, с помощью цифровых кадров Pandas). Для того, чтобы делать то, что вы хотите использовать udf:

from pyspark.sql.functions import udf 
import numpy as np 

df = <original df> 

udf_randint = udf(np.random.randint(1, 4)) 
df_new = df.withColumn("random_num": udf_randint) 
+0

это один не работает –

+0

Ах, извините, вам нужно позвонить 'lit' в списке Numpy. Это то, что происходит, когда я пытаюсь ответить на вопросы без Искры перед вами. Я отредактирую его. – Jeff

+0

Могу ли я спросить, для чего нужен последний аргумент (размер)? Я пробовал без этого аргумента, и он дает мне то же значение все время, а не случайно. это было 3 все время –

Смежные вопросы