Pyspark为除一列外的所有数据帧供电

时间:2019-04-27 13:54:00

标签: python apache-spark dataframe pyspark

我有一个看起来像这样的数据框:

Id   a1  a2  a3   
+--+---+---+---+
1  |5  |45 |4
2  |2  |12 |79
3  |7  |8  |56

我想创建一个新的数据框,该框将按值m为所有列供电,但id列除外。这是我到目前为止所拥有的:

  dfCluster = U.select(* ( ( pow(col(c),m )).alias(c) for c in U.columns))

,但是此代码为所有列(包括“ Id”列)提供动力。我也尝试了这段代码:

dfCluster = U.select(* ( ( pow(col(c),m )).alias(c) for c in U.columns if c not in 'ColumnIndex'))

,但是在新数据框中,我根本没有获得“ Id”列,但我需要。有什么想法可以为除“ Id”列之外的所有表供电吗?

1 个答案:

答案 0 :(得分:1)

只需使用一个简单的生成器表达式,将library(tidyverse) df %>% arrange(match(str_remove(id, "-\\d+"), c("cx", "rx", "px")), readr::parse_number(as.character(id)), desc(value)) # id value #1 cx-03 2 #2 cx-03 1 #3 cx-02 3 #4 cx-02 2 #5 cx-02 1 #6 cx-01 2 #7 cx-01 1 #8 rx-03 2 #9 rx-03 1 #10 rx-02 3 #11 rx-02 2 #12 rx-02 1 #13 rx-01 2 #14 rx-01 1 #15 px-03 2 #16 px-03 1 #17 px-02 3 #18 px-02 2 #19 px-02 1 #20 px-01 2 #21 px-01 1 留在外面:

Id