PySpark: как fillna значения в таблице данных для определенных столбцов?
у меня есть следующий образец фрейма данных:
a | b | c |
1 | 2 | 4 |
0 | null | null|
null | 3 | 4 |
и я хочу заменить нулевые значения только в первых 2 столбцах-Столбцах "a" и "b":
a | b | c |
1 | 2 | 4 |
0 | 0 | null|
0 | 3 | 4 |
вот код для создания образца фрейма данных:
rdd = sc.parallelize([(1,2,4), (0,None,None), (None,3,4)])
df2 = sqlContext.createDataFrame(rdd, ["a", "b", "c"])
Я знаю, как заменить все нулевые значения, используя:
df2 = df2.fillna(0)
и когда я пытаюсь это сделать, я теряю третий столбец:
df2 = df2.select(df2.columns[0:1]).fillna(0)
2 ответов
df.fillna(0, subset=['a', 'b'])
есть параметр с именем subset
к выбранным столбцам, если ваша версия spark не ниже 1.3.1