J'ai un problème très similaire à la place avec une source de données Teradata, et cela se résumait à la nullité de la colonne sur le DataFrame qui ne correspondait pas aux données sous-jacentes (la colonne avait nullable=false, mais certaines lignes avaient des valeurs nulles dans ce champ particulier). La cause dans mon cas était que le pilote Teradata JDBC ne renvoyait pas les métadonnées de colonne correctes. Je n'ai pas encore trouvé de solution à ce problème.
Pour voir le code généré (dans lequel le NPE est lancé) :
- importer org.apache.spark.sql.execution.debug._
- appelez .debugCodegen() sur le DataSet/DataFrame
J'espère que cela vous aidera.