Jeg har i stedet et meget lignende problem med en Teradata-datakilde, og det kom ned til, at kolonnens nullabilitet på DataFrame ikke matchede de underliggende data (kolonnen havde nullable=false, men nogle rækker havde null-værdier i det pågældende felt). Årsagen i mit tilfælde var, at Teradata JDBC-driveren ikke returnerede de korrekte kolonnemetadata. Jeg mangler endnu at finde en løsning på dette.
For at se den kode, der genereres (hvori NPE'en bliver kastet):
- importer org.apache.spark.sql.execution.debug.__
- kald .debugCodegen() på DataSet/DataFrame
Håber dette hjælper.