java.lang.NoSuchMethodError: org.apache.hadoop.security.ProviderUtils.excludeIncompatibleCredentialProviders при чтении из хранилища BLOB-объектов Azure

Я пытаюсь прочитать CSV-файл, хранящийся в учетной записи хранения Azure. Для этого я установил искру на свою виртуальную машину и пытаюсь прочитать CSV-файл в фрейме данных из pyspark.

Я где-то читал, как это сделать, и я выполнил шаги и скопировал последние файлы JAR hadoop-azure и azure-storage в свои каталоги / jar. Затем я обнаружил эту ошибку: -

NoClassDefFoundError: org / apache / hadoop / fs / StreamCapabilities

Я искал эту ошибку и обнаружил, что мне нужно сослаться на hadoop-azure-2.8.5.jar вместо последней версии HADOOP-azure JAR. Итак, я заменил этот JAR на последнюю версию hadoop-azure jar и снова выполнил свой код pyspark.

После выполнения моего кода я столкнулся с другой ошибкой: -

: java.lang.NoSuchMethodError: org.apache.hadoop.security.ProviderUtils.excludeIncompatibleCredentialProviders (Lorg / apache / hadoop / conf / Configuration; Ljava / lang / Class;) Lorg / apache / hadoop / conf / Configuration;

Кроме того, ниже мой код pyspark: -

from pyspark import SparkContext
from pyspark.sql import SparkSession
from pyspark.sql import Window
from pyspark.sql.types import *
from pyspark.sql.functions import *

spark = SparkSession.builder.getOrCreate()
storage_account_name = "<storage_account_name>"
storage_account_access_key = "<storage_account_access_key>"
spark.conf.set("fs.azure.account.key." + storage_account_name + ".blob.core.windows.net",storage_account_access_key)

spark._jsc.hadoopConfiguration().set("fs.wasbs.impl","org.apache.hadoop.fs.azure.NativeAzureFileSystem")
spark._jsc.hadoopConfiguration().set("fs.azure", "org.apache.hadoop.fs.azure.NativeAzureFileSystem")
spark._jsc.hadoopConfiguration().set("fs.azure.account.key.my_account.blob.core.windows.net", "storage_account_access_key")


df = spark.read.format("csv").option("inferSchema", "true").load("wasbs://<container_name>@<storage_account_name>.blob.core.windows.net/<path_to_csv>/sample_file.csv")
df.show()

person Piyush Thakur    schedule 26.08.2020    source источник
comment
Не могли бы вы проверить, соответствует ли версия hadoop-azure вашей версии hadoop искры?   -  person Jim Xu    schedule 26.08.2020


Ответы (1)


Я искал это и пробовал различные версии Hadoop-azure JAR. У меня сработал hadoop-azure-2.7.0.jar.

В этой версии JAR я смог прочитать файл CSV из хранилища BLOB-объектов.

person Piyush Thakur    schedule 28.08.2020