如何更改pyspark数据框中列的顺序?
Posted
技术标签:
【中文标题】如何更改pyspark数据框中列的顺序?【英文标题】:How to change the order of columns in pyspark dataframe? 【发布时间】:2017-09-21 09:17:57 【问题描述】:我有包含监督数据的 pyspark 数据框。在我的数据框中,标签属性可以出现在任何位置。我想将标签属性移动到数据框中的最后一个。例如,假设我的数据框中的属性存在 ['age','gender','defaulter','salary','occupation']。在这个'defaulter'中是标签属性。我想最后移动这个属性,以便我的数据框包含按此顺序['age','gender','salary','occupation','defaulter']的列。我想这样做是因为当我想在这些数据中应用逻辑回归等 ML 算法时,我必须将其转换为 RDD 并提取最后一个值(或第一个值)作为标签点(https://github.com/apache/spark/blob/master/examples/src/main/python/mllib/logistic_regression.py)。
【问题讨论】:
Python Pandas - Re-ordering columns in a dataframe based on column name的可能重复 【参考方案1】:如果您在 Dataframe 上运行 ML 算法,请考虑使用 VectorAssembler 创建特征数组。像这样:
assembler = VectorAssembler(
inputCols= ['age','gender','salary','occupation'],
outputCol="features")
input_rdd = assembler.transform(dataframe) \
.map(lambda row: LabeledPoint(row.defaulter, row.features))
【讨论】:
以上是关于如何更改pyspark数据框中列的顺序?的主要内容,如果未能解决你的问题,请参考以下文章
如何遍历大型 Pyspark Dataframe 中列的不同值? .distinct().collect() 引发大任务警告