问题描述
"ds" 是具有现有列 inpMap 的数据集类型。需要知道如何将特定行的值添加到数据集的这一列
for (int i = 0; i < size; i++){
String propMap = "abc";
if(propMap != null){
String inpMap = colMap.get(propMap); // where colMap is dictionary
ds= ds.withColumn(inpMap,"test"); // ??? how to do here...as withCol adds new col. And I have this col existing in "ds" Dataset.
}
}
解决方法
使用 Spark 时,最好尝试可视化创建列而不是行的转换。这使得构建逻辑更容易。
根据您的代码,我假设变量 "propMap" 是不变的。您只需按如下方式编写转换:
import org.apache.spark.sql.functions.lit;
String inpMap = colMap.get(propMap);
dsWithTestColumn = ds.withColumn("test",lit(inpMap));
另外,我假设您将 Java API 与 Apache Spark 一起使用。