我有一个案例类如下:
case class Class1(field1: String,
field2: Option[String] = None,
var var1: Option[String] = None,
var var2: Option[Boolean] = None,
var var3: Option[Double] = None
)
变量列表要长一点。现在我想把类中的所有变量转换成一个字符串。说 Option[]
必须省略并且 Boolean
, Double
以及 Number
必须转换为字符串类型。我的第一个方法是:
def anyOptionalToString(class1Dataset: Dataset[Class1]): DataFrame = {
val ds1 = class1Dataset.map { class1 =>
(
class1.field1,
class1.field2.getOrElse(""),
class1.var1.getOrElse(""),
class1.var2.getOrElse(false),
class1.var3.getOrElse(-1.0)
)
}
有没有一种方法可以在不调用每个领域的情况下使用它们?用一种 loop
或者类似的?
1条答案
按热度按时间pwuypxnk1#
我要做的是创造一个新的
Seq
包含您想要的默认值。比如说:现在,我们可以使用
productIterator
要迭代现有元素,并选择是使用现有值还是默认值:上面代码的结果类型是
Iterator[String]
. 代码运行可以在scastie上找到。