कुछ कार्यों के निष्पादन के बाद शून्य/सही क्यों है? फिर भी डीएफ में कोई नैन मूल्य नहीं हैं।स्पार्क क्यों कॉलम निरर्थक में बदलते हैं
val myDf = Seq((2,"A"),(2,"B"),(1,"C"))
.toDF("foo","bar")
.withColumn("foo", 'foo.cast("Int"))
myDf.withColumn("foo_2", when($"foo" === 2 , 1).otherwise(0)).select("foo", "foo_2").show
जब df.printSchema
अब नल कहा जाता है दोनों कॉलम के लिए झूठी हो जाएगा।
val foo: (Int => String) = (t: Int) => {
fooMap.get(t) match {
case Some(tt) => tt
case None => "notFound"
}
}
val fooMap = Map(
1 -> "small",
2 -> "big"
)
val fooUDF = udf(foo)
myDf
.withColumn("foo", fooUDF(col("foo")))
.withColumn("foo_2", when($"foo" === 2 , 1).otherwise(0)).select("foo", "foo_2")
.select("foo", "foo_2")
.printSchema
हालांकि अब, कम से कम एक कॉलम के लिए शून्य है जो पहले झूठा था। इसे कैसे समझाया जा सकता है?