Apache spark 在if语句中创建数据帧

Apache spark 在if语句中创建数据帧,apache-spark,Apache Spark,在条件语句中创建数据帧时,我注意到一些奇怪的行为 例如: val bla = 3 case class Test(foo: Int) val test = if (bla == 1){ println("foo") } else {Seq(4,5,6).toDF} 返回任何 而下面的代码将返回一个数据帧 val bla = 3 case class Test(foo: Int) val test = if (bla == 1){ Seq(1,2,3).toDF } else {

在条件语句中创建数据帧时,我注意到一些奇怪的行为

例如:

val bla = 3
case class Test(foo: Int)

val test = if (bla == 1){
   println("foo")
} else {Seq(4,5,6).toDF}
返回任何

而下面的代码将返回一个数据帧

val bla = 3
case class Test(foo: Int)

val test = if (bla == 1){
   Seq(1,2,3).toDF
} else {Seq(4,5,6).toDF}

这是因为
println
的返回类型是
Unit
,所以编译器必须选择
DataFrame
Unit
的公共超类型-它是
Any

必须在
if
else
中创建数据帧,即空数据帧


带有数据帧类型的变量必须是
if
else

LOL块中的最后一个表达式。你比我快:)@eliasah昨天(或两天前)我比别人早了不到一分钟发布了答案:d这比我早了13秒:p