由 cousera DP203 上的 Databricks、AZURE 上的 Databricks 托管服务提供的代码:
%fs head /mnt/training/wikipedia/pageviews/pageviews_by_second.tsv
它不起作用。它给出:
AzureException: hadoop_azure_shaded.com.microsoft.azure.storage.StorageException: Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.
Caused by: StorageException: Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.
为什么他们 - Databricks - 就这样离开而不以适当的方式升级访问路径?
display(dbutils.fs.ls('/databricks-datasets/wikipedia-datasets/data-001/pageviews/raw/'))
和 %fs head /databricks-datasets/wikipedia-datasets/data-001/pageviews/raw/pageviews_by_second.tsv
我所做的也如下,您可以看到我做了一些更改以使
spark.read
正常工作:
wasbs
已被弃用。
那么,这里的想法是什么?我也可以做
csvFile = "/databricks-datasets/wikipedia-datasets/data-001/pageviews/raw/pageviews_by_second.tsv"
,效果很好。
在 Databricks 社区版中,我可以很好地针对
/mnt/training/...
运行查询。
我想知道该得出什么结论。迁移到 ADLS2 后可能缺少更新 Databricks、移动、更改 mnt 点?我并不期望在课程的这个阶段需要 ABFS 来创建挂载点。
AzureException:hadoop_azure_shaded.com.microsoft.azure.storage.StorageException:服务器无法对请求进行身份验证。确保授权标头的值格式正确,包括签名。 原因是:StorageException:服务器无法验证请求。确保授权标头的值正确形成,包括签名。
出现上述错误的原因可能是创建挂载点时使用了无效的 SAS 令牌,或者所使用的 SAS 令牌被终止。
当您连接到 ADLS1 或 ADLS2 时,它们使用不同的端点来连接 ADLS1 使用
adl
而 ADLS 2 使用 wasbs,abfss
您需要更新特定位置的挂载点。
dbutils.fs.mount(
source="wasbs://cont_name@storage_acc_name.blob.core.windows.net",
mount_point="/mnt/blob1", # Update the mount_point parameter to start with a forward slash
extra_configs={'fs.azure.sas.cont_name.storage_acc_name.blob.core.windows.net': 'SAS token'}
)
%fs head /mnt/blob/filepath