我必须将列添加到我的dataframe和columns=list中,所以我必须迭代这个对象列表:
columns=[
{val1="A",val2="num1"},
{val1="B",val2="num2"},
{val1="C",val2="num3"},
{val1="D",val2="num4"}
]
我的Dataframe
|nom |prenom | age |
|arnauld | simpson | 43 |
预期结果是:
|nom |prenom | age | A | B | C | D |
|arnauld | simpson | 43 |num1 |num2|num3|num4|
我尝试的是:
Iterator<Myclass> iterator = cols.iterator();
Dataset<Row> result=myDf;
while (iterator.hasNext()) {
Myclass res = iterator.next();
String val1= res.getVal1();
String val2= res.getVal2();
result = myDf.withColumn(val1, expr(val2));
result.show();
}
但是我没有预期的结果,我只有最后一个对象(val1=“d”,val2=“num4”)。请问我怎样才能得到预期的结果?
1条答案
按热度按时间rfbsl7qr1#
result = myDf.withColumn(val1, expr(val2));
应该是result = result.withColumn(val1, expr(val2));
否则您将丢弃result
在每次迭代中。