3
在斯卡拉/星火,有一個數據幀:斯卡拉/星火dataframes:找到對應的最大列名
val dfIn = sqlContext.createDataFrame(Seq(
("r0", 0, 2, 3),
("r1", 1, 0, 0),
("r2", 0, 2, 2))).toDF("id", "c0", "c1", "c2")
我想計算一個新列maxCol
持有名稱相應列的到最大值(每行)。在這個例子中,輸出應該是:
+---+---+---+---+------+
| id| c0| c1| c2|maxCol|
+---+---+---+---+------+
| r0| 0| 2| 3| c2|
| r1| 1| 0| 0| c0|
| r2| 0| 2| 2| c1|
+---+---+---+---+------+
其實數據幀有60多列。因此需要一個通用的解決方案。
在Python熊貓(是的,我知道,我應該pyspark比較...)的等效可能是:
dfOut = pd.concat([dfIn, dfIn.idxmax(axis=1).rename('maxCol')], axis=1)
你一般有多少列? – mrsrinivas
我有大約60列 – ivankeller
最多可以比較多少列? – mrsrinivas