Ik heb in plaats daarvan vergelijkbare problemen met een Teradata-gegevensbron, en het kwam erop neer dat de nullabiliteit van de kolom op het DataFrame niet overeenkwam met de onderliggende gegevens (de kolom had nullable=false, maar sommige rijen hadden null-waarden in dat specifieke veld). De oorzaak in mijn geval was dat het Teradata JDBC-stuurprogramma niet de juiste kolommetagegevens retourneerde. Ik moet hier nog een oplossing voor vinden.
Om de code te zien die wordt gegenereerd (waarbinnen de NPE wordt gegooid):
- org.apache.spark.sql.execution.debug._ importeren
- aanroep .debugCodegen() op de DataSet/DataFrame
Ik hoop dat dit helpt.