Azure HDInsight 上的 Jupyter 无法读取同一目录中的文件

Jupyter on Azure HDInsight can't read a file on same directory

我想将配置变量与 Jupyter notebook 分开。所以我想我会把所有这些变量放在一个单独的 json 文件中。我使用 Azure HDInsight 并且不想依赖存储帐户名称和密钥来访问此文件,因为它们本身就是配置变量。

所以我认为将此配置 json 文件存储在与笔记本位置相同的目录中可以解决此问题,并且还允许更改此配置文件而无需像 it is also saved in storage account 那样触摸 Python 脚本.

但是,Python 无法读取同一目录下的这个文件(见截图)

笔记本首页:

笔记本:

我发现这是因为不同的用户和权限。

笔记本是 运行 用户 livy,当我 运行 魔术命令时,用户是 spark。所以 pwd 魔术命令将工作目录显示为 /var/lib/jupyter(这非常令人困惑)并且它包含笔记本主页上显示的所有文件。

为了解决我手头的问题,我可以使用带路径的 wasp(没有容器和存储帐户主机名,因为它存储在默认存储中)。

config = spark.read.json("wasb:///HdiNotebooks/config.json")

通过这种方式,我删除了容器名称和存储帐户名称在 spark 代码中的硬编码。