如何更改pyspark数据框中的列顺序?

时间:2017-09-21 09:17:58

标签: python pyspark

我有pyspark数据框,其中包含监督数据。在我的数据框中,label属性可以出现在任何位置。我想将label属性移动到dataframe中的最后一个。例如,假设我的数据框中的属性存在,如['age','gender','defaulter','salary','occup']。在这个'defaulter'中是label属性。我想最后移动这个属性,以便我的数据框包含这个顺序的列['age','gender','salary','Occup','defaulter']。我想这样做是因为当我想在此数据中应用ML算法(例如逻辑回归)时,我必须将其转换为RDD并将最后一个值(或第一个值)提取为标签点(https://github.com/apache/spark/blob/master/examples/src/main/python/mllib/logistic_regression.py)。

1 个答案:

答案 0 :(得分:0)

如果在Dataframe上运行ML算法,请考虑使用VectorAssembler创建features数组。像这样:

assembler = VectorAssembler(
    inputCols= ['age','gender','salary','occupation'],
    outputCol="features")

input_rdd = assembler.transform(dataframe) \
    .map(lambda row: LabeledPoint(row.defaulter, row.features))