将数据作为 Json 从 DataFrame 写入 Azure Blob 存储
Write Data as Json from DataFrame to Azure Blob Storage
我在数据框中有一些数据,我必须将其转换为 json 并将其存储到 Azure Blob 存储中。
有什么办法可以做到这一点?
以下是我尝试过的步骤。我正在尝试从 spark-shell.
val df = spark.sql("select * from historic_data.all_historic_data").show()
spark.conf.set("fs.azure.account.key.<STORAGE_ACCOUNT_NAME>.blob.core.windows.net","STORAGE_ACCOUNT_KEY")
df.write.mode(SaveMode.Append).json("wasbs://BlobStorageContainer@<STORAGE_ACCOUNT_NAME>.blob.core.windows.net/<FOLDER_PATH_OF BLOB>/")
虽然 运行 写入命令出现以下错误
org.apache.hadoop.fs.azure.AzureException: com.microsoft.azure.storage.StorageException: The specifed resource name contains invalid characters.
at org.apache.hadoop.fs.azure.AzureNativeFileSystemStore.retrieveMetadata(AzureNativeFileSystemStore.java:2208)
at org.apache.hadoop.fs.azure.NativeAzureFileSystem.getFileStatusInternal(NativeAzureFileSystem.java:2673)
at org.apache.hadoop.fs.azure.NativeAzureFileSystem.getFileStatus(NativeAzureFileSystem.java:2618)
at org.apache.hadoop.fs.FileSystem.exists(FileSystem.java:1448)
at org.apache.spark.sql.execution.datasources.InsertIntoHadoopFsRelationCommand.run(InsertIntoHadoopFsRelationCommand.scala:92
我在提供 blob 详细信息时是否遗漏了什么?
下面是我的存储帐户的屏幕截图:
我在这里还没有看到任何类似的问题,它将作为 Json 从数据帧写入 Azure Blob。
指定的资源名称包含无效字符。
消息清楚问题。您在容器名称中使用大写字符,即 not allowed,因此将 BlobStorageContainer 更改为 blobstoragecontainer。
可以找到完整的规则列表 here。
我在数据框中有一些数据,我必须将其转换为 json 并将其存储到 Azure Blob 存储中。 有什么办法可以做到这一点? 以下是我尝试过的步骤。我正在尝试从 spark-shell.
val df = spark.sql("select * from historic_data.all_historic_data").show()
spark.conf.set("fs.azure.account.key.<STORAGE_ACCOUNT_NAME>.blob.core.windows.net","STORAGE_ACCOUNT_KEY")
df.write.mode(SaveMode.Append).json("wasbs://BlobStorageContainer@<STORAGE_ACCOUNT_NAME>.blob.core.windows.net/<FOLDER_PATH_OF BLOB>/")
虽然 运行 写入命令出现以下错误
org.apache.hadoop.fs.azure.AzureException: com.microsoft.azure.storage.StorageException: The specifed resource name contains invalid characters.
at org.apache.hadoop.fs.azure.AzureNativeFileSystemStore.retrieveMetadata(AzureNativeFileSystemStore.java:2208)
at org.apache.hadoop.fs.azure.NativeAzureFileSystem.getFileStatusInternal(NativeAzureFileSystem.java:2673)
at org.apache.hadoop.fs.azure.NativeAzureFileSystem.getFileStatus(NativeAzureFileSystem.java:2618)
at org.apache.hadoop.fs.FileSystem.exists(FileSystem.java:1448)
at org.apache.spark.sql.execution.datasources.InsertIntoHadoopFsRelationCommand.run(InsertIntoHadoopFsRelationCommand.scala:92
我在提供 blob 详细信息时是否遗漏了什么? 下面是我的存储帐户的屏幕截图:
我在这里还没有看到任何类似的问题,它将作为 Json 从数据帧写入 Azure Blob。
指定的资源名称包含无效字符。
消息清楚问题。您在容器名称中使用大写字符,即 not allowed,因此将 BlobStorageContainer 更改为 blobstoragecontainer。
可以找到完整的规则列表 here。