如何转换数据框“反向枢轴”

时间:2018-10-30 09:50:44

标签: scala apache-spark dataframe

我正在使用包含数百列的数据框,因为我知道不建议使用大量列,因此我想通过转换数据框来获得有限的列数。我有六类列(ID,CUI,CUD,DUC,kAO,INT)的想法。数据框的简单示例看起来像

    df.show()
    id.0 |id.1|id.3|id.4|cui.5|cui.2|cui.6|cud.3|cud.2|duc.0|duc.7|koa.3|kow.2|int.3|int.0|int.1|int.4|int.3|
    1111 |2752|2574|2670|11333|14684|72652|26579|12374|13482|15697|16800|15945|15930|14720|11211|11211|46244|
    1151 |2755|2575|2675|11335|14656|72672|26589|12314|13182|11497|11800|15915|15530|14020|11811|11811|86244|
我有六个类别的列(ID,CUI,CUD,DUC,kAO,INT)的想法。因此,首先,我想获取列的最大无符号数,在我们的例子中是7,然后为所有类生成从0到最大值的不存在的列,其值为null FOR NEW COLUMNS,因此new datafrme的列必须为

     id.0 |id.1|id.3|id.4|id.5|id.6|id.7|cui.5|cui.2|cui.6|cui.0|cui.1|cui.3|cui.7|cud.3|cud.2|cud.1|cud.0|cud.4|cud.5|cud.6|cud.7|duc.0|duc.1|duc.2|duc.3|duc.4|duc.7|duc.5|duc.6|koa.3|kow.2|koa.1|kow.0|koa.4|kow.5|koa.6|kow.7|int.2|int.0|int.1|int.4|int.5|int.6|int.3|int.7|

然后我想反转一个枢轴,即为每个包含索引值的类获取列,最终结果将是:

       ID  |CUI  |CUD  |DUC   |KAO |INT
       1111|NULL |NULL |13482 |NULL|14720 // first value of index 0
       1151|NULL |NULL |13182 |NULL|14020 // second value of index 0
       2752|NULL |NULL |NULL  |NULL|11211 //first value of index 1
       2755|NULL |NULL |NULL  |NULL|11811  // second value of index 1
        .
        .

任何帮助,请

0 个答案:

没有答案