最终目标是能够将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())
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.
。
我找不到任何谈论/解决此问题的方法。我找到的最接近的是this,它不起作用/已过时。
我发现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数据帧应该不那么困难。我在做什么错了?