Я хочу умножить столбец (скажем, x3
) фрейма данных PySpark (скажем, df
) на скаляр (скажем, 0.1
). Ниже приведен пример имеющегося у меня фрейма данных:
df = sqlContext.createDataFrame(
[(1, "a", 1551.0), (3, "B", 1925.0)], ("x1", "x2", "x3"))
df.show()
+---+---+----+
| x1| x2| x3|
+---+---+----+
| 1| a| 5.0|
| 3| B|21.0|
+---+---+----+
Ниже приводится то, что я пытаюсь сделать в данный момент:
df_new = df.withColumn( "norm_x3", 0.1*F.col( "x3") )
df_new = df_new.select( [c for c in df_new.columns if c not in {'x3'}] )
Метод, который я пробую выше, дает ожидаемый результат, которыйэто:
+---+---+-------+
| x1| x2|norm_x3|
+---+---+-------+
| 1| a| 0.5|
| 3| B| 2.1|
+---+---+-------+
Есть ли более элегантный и короткий способ сделать то же самое? Спасибо.