NULL не имеет значения и поэтому не может сравниваться с использованием операторов скалярного значения.
Другими словами, ни одно значение не может быть равно (или не равно) NULL, потому что NULL не имеет значения.
Следовательно, SQL имеет специальные IS NULL и IS NOT NULL предикаты для работы с NULL.
Как у вас работает этот код? Вам нужно будет передать MySQL JAR как --jars
; что-то вроде --jars /path/to/mysql.jar
при запуске spark-shell
или spark-submit
.
Если вы предпочитаете запускать один JAR, вам необходимо убедиться, что MySQL JAR встроен как часть вашего Uber JAR. Я никогда не использовал SBT, но вам нужно проверить, есть ли в конечном созданном JAR классы MySQL - если нет, используйте соответствующие флаги SBT, чтобы это произошло.
Вы должны убедиться, что зависимости mysql существуют для всех исполнителей. В моей среде я использую maven и указываю такую зависимость внутри моего pom.xml
:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.42</version>
</dependency>
. Затем я проверяю, что эта зависимость включена в jar приложения (используя плагин maven shade), поэтому что мне не нужно ставить банку на всех исполнителей.
Независимо от того, используете ли вы spark
или нет для доступа к mysql
через jdbc
, вам необходимо убедиться, что mysql-connector
доступен в classpath
, где бы вы ни выполняли mysql
запросов. [1110 ]