我有一个包含很多列的DataFrame。现在,我想调整列的顺序。
首先必须有一定数量的列(以一定顺序排列),之后的其余列必须按列名排序(不手动,因为有很多列)
如何使用PySpark做到这一点?
我想先对它们进行排序,然后再按特定顺序进行调整
df.orderBy(cols, ascending=True)
假设当前列顺序:
col_a, col_k, col_c, col_h, col_e, col_f, col_g, col_d, col_j, col_i, col_b
所需的新订单:
col_c, col_j, col_a, col_g :: col_b, col_d, col_e, col_f, col_h, col_i, col_k
之前::
是按特定顺序排列的列,之后是按列名称排序的其余列
您可以选择第一个特定的cols,使用python排序其余的,sorted
然后在df中选择:
first_cols = ["col_c", "col_j", "col_a", "col_g"]
other_cols = sorted([c for c in df.columns if c not in first_cols], key=str.lower())
rearanged_cols = first_cols + other_cols
然后:
df = df.toDF(*rearanged_cols)
要么:
df = df.select(*rearanged_cols)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句