#scala #apache-spark #dataframe #snappy #snappydata
#scala #apache-spark #фрейм данных #snappy #snappydata
Вопрос:
Я пытаюсь выполнить множество соединений в некоторых фреймах данных, используя spark в scala
. Когда я пытаюсь получить количество конечного фрейма данных, который я генерирую здесь, я получаю следующее исключение. Я запускаю код с помощью spark-shell.
Я попробовал некоторые параметры конфигурации, подобные приведенным ниже, при запуске spark-shell. Но ни один из них не работал. Есть ли что-то, чего мне здесь не хватает? :
--conf "spark.driver.extraLibraryPath=/usr/hdp/2.6.3.0-235/hadoop/lib/native/"
--jars /usr/hdp/current/hadoop-client/lib/snappy-java-1.0.4.1.jar
Вызвано: java.lang.RuntimeException: собственная библиотека snappy недоступна: эта версия libhadoop была собрана без поддержки snappy.
в org.apache.hadoop.io.compress.Загружен SnappyCodec.checkNativeCodeLoaded(SnappyCodec.java:65)
в org.apache.hadoop.io.compress.SnappyCodec.getDecompressorType(SnappyCodec.java:193)
Комментарии:
1. Snappy — это собственная библиотека, это означает, что она написана на C или другом языке, который может быть скомпилирован на ассемблере и установлен в виде общего
.so
файла в вашей системе. Библиотека Java — это просто оболочка над реальной snappy, чтобы упростить процесс ее вызова. Как говорится в сообщении об ошибке, ваш дистрибутив hadoop был создан без поддержки snappy. Вы можете попробовать задать вопрос в блоге hontorworks.
Ответ №1:
Попробуйте обновить файл jar Hadoop с 2.6.3.
на 2.8.0
или 3.0.0
. В более ранней версии Hadoop была ошибка: собственная библиотека snappy была недоступна. После изменения jar ядра Hadoop вы должны иметь возможность выполнять сжатие / распаковку snappy.