在最近发布的Apache Spark数据工程师指南中,作者表示(第74页):
"...当你定义一个模式,其中所有列都被声明为没有空值时 - Spark不会强制执行该操作,并且很乐意将null值放入该列.可空信号只是帮助Spark SQL优化以处理该列.如果在不应具有空值的列中具有空值,则可能会得到不正确的结果,或者看到难以调试的奇怪异常."
在阅读笔记和之前的JIRA时,上面的陈述似乎真的不再适用.
根据SPARK-13740和SPARK-15192,在DataFrame创建中定义模式时,可以强制执行可为空性.
我可以澄清一下吗?我不再确定这是什么行为.