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
和elseLOL块中的最后一个表达式。你比我快:)@eliasah昨天(或两天前)我比别人早了不到一分钟发布了答案:d这比我早了13秒:p