Вместо това имам много подобни проблеми с източник на данни Teradata и се свеждаше до това, че нулевата стойност на колоната в DataFrame не съответства на основните данни (колоната имаше nullable=false, но някои редове имаха нулеви стойности в това конкретно поле). Причината в моя случай беше, че драйверът Teradata JDBC не връща правилните метаданни на колоната. Все още не намирам решение на това.
За да видите кода, който се генерира (в който се хвърля NPE):
- импортиране на org.apache.spark.sql.execution.debug._
- извикване на .debugCodegen() на DataSet/DataFrame
Надявам се това да помогне.