Конечная цель - прочитать данные из моего контейнера Azure в фрейм PySpark.
Шаги до сих пор
Шаги, которые я выполнял до сих пор:
Записать этот код
spark = SparkSession(SparkContext())
spark.conf.set(
"fs.azure.account.key.%s.blob.core.windows.net" % AZURE_ACCOUNT_NAME,
AZURE_ACCOUNT_KEY
)
spark.conf.set(
"fs.wasbs.impl",
"org.apache.hadoop.fs.azure.NativeAzureFileSystem"
)
container_path = "wasbs://%s@%s.blob.core.windows.net" % (
AZURE_CONTAINER_NAME, AZURE_ACCOUNT_NAME
)
blob_folder = "%s/%s" % (container_path, AZURE_BLOB_NAME)
df = spark.read.format("text").load(blob_folder)
print(df.count())
- Установить публичный и анонимный доступ к моему контейнеру Azure.
- Добавлены две банки
hadoop-azure-2.7.3.jar
и azure-storage-2.2.0.jar
впуть.
Проблема
Но теперь я застрял с этой ошибкой: Caused by: com.microsoft.azure.storage.StorageException: Incorrect Blob type, please use the correct Blob type to access a blob on the server. Expected BLOCK_BLOB, actual UNSPECIFIED.
.Я не смог найти ничего, что говорит / решает эту проблему.Самое близкое, что я нашел, это это , которое не работает / устарело.
РЕДАКТИРОВАТЬ
Я обнаружил, что azure-storage-2.2.0.jar
не поддерживает APPEND_BLOB
.Я обновил до azure-storage-4.0.0.jar
, и ошибка изменилась с Expected BLOCK_BLOB, actual UNSPECIFIED.
до Expected BLOCK_BLOB, actual APPEND_BLOB.
.Кто-нибудь знает, как передать правильный тип, чтобы ожидать?
Может кто-нибудь, пожалуйста, помогите мне решить эту проблему.
У меня минимальный опыт работы с Azure, но я не думаю, что это должно бытьэто трудно читать и создавать из него Spark-фрейм данных.Что я делаю не так?