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

时间:2017-05-16 14:08:13

标签: pyspark jupyter-notebook hdinsight

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

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

但是,Python无法读取位于同一目录下的此文件(参见屏幕截图)

Notebook Home:

Notebook home

笔记本:Azure Notebook

1 个答案:

答案 0 :(得分:1)

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

Notebook正在使用用户livy运行,当我运行magic命令时,用户为spark。因此,pwd magic命令将工作目录显示为/var/lib/jupyter(这非常令人困惑),它包含笔记本主页上显示的所有文件。

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

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

这样我就在spark代码中删除了容器名称和存储帐户名称硬编码。