我有一个包含列名的列名列表,我正在迭代一行并检查它是否包含1,然后将该列名附加到列表中。使用zip或其他方法是否更好。
private def getNames(row: Row): List[String] = {
val listofColumnNames = row.schema.fields.map(_.name).toList
val listOfColumnWhichContainOne = ArrayBuffer[String]()
listofColumnNames.indices.foreach(index => {
if(row.getInt(index).equals(1)) {
listOfColumnWhichContainOne.append(listofColumnNames(index))
}
})
listofColumnNames.toList
}
可以简化吗?
1条答案
按热度按时间83qze16e1#
您可以将新列添加到现有数据框中,该数据框包含一个列列表,该列列表中的特定行的字段具有值
1
.在withcolumn的列参数中,可以迭代所有其他列并检查所需的值:
印刷品: