LUZ*_*UZO 0 python apache-spark pyspark pyspark-sql
我需要经常更改列位置.而不是更改代码我创建了一个临时数据帧Index_df
.在这里,我将更新列位置,它应该反映更改应该执行的实际数据帧.
sample_df
F_cDc,F_NHY,F_XUI,F_NMY,P_cDc,P_NHY,P_XUI,P_NMY
415 258 854 245 478 278 874 235
405 197 234 456 567 188 108 267
315 458 054 375 898 978 677 134
Run Code Online (Sandbox Code Playgroud)
Index_df
col position
F_cDc,1
F_NHY,3
F_XUI,5
F_NMY,7
P_cDc,2
P_NHY,4
P_XUI,6
P_NMY,8
Run Code Online (Sandbox Code Playgroud)
在这里index_df
,sample_df
应该改变.
预期产量:
F_cDc,P_cDc,F_NHY,P_NHY,F_XUI,P_XUI,F_NMY,P_NMY
415 478 258 278 854 874 245 235
405 567 197 188 234 108 456 267
315 898 458 978 054 677 375 134
Run Code Online (Sandbox Code Playgroud)
这里的列位置根据我更新的位置而改变 Index_df
我能做到,sample_df.select("<column order>")
但我有超过70列.从技术上讲,这不是最好的交易方式.
您可以轻松实现这一目标select
.
首先,按正确的顺序检索列:
NewColList = Index_df.orderBy("position").select("col").collect()
Run Code Online (Sandbox Code Playgroud)
然后你将新订单应用到你的df
sample_df = sample_df.select(*[i[0] for i in NewColList])
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
147 次 |
最近记录: |