无法从Jupyter python单元访问Datalab容器中的文件

时间:2016-09-06 15:10:21

标签: google-cloud-platform google-cloud-datalab

我已成功将数据从已弃用的Cloud Datalab Deployer迁移到带有GCP的docker Datalab容器。我正在使用MacOS,我可以看到我的主目录已连接到容器的/content目录。所以我的笔记本可以通过Datalab Jupyter界面访问。

我的笔记本有一些文本处理程序,它从与笔记本本身位于同一目录中的文本文件中加载停用词列表。 但是当我尝试从python代码访问/content目录中的一个文件时,我收到错误'文件不存在':

>>> stopwords_full = load_stopwords_from_file('./stopwords/verylong_words_list.txt')

IOError: File ./stopwords/verylong_words_list.txt does not exist

实际上,当我运行ls命令时,我看不到/content目录及其所有子文件等:

>>> !ls
bin  dev   lib    mnt       proc  sbin  sys    usr
boot     etc   lib64  node_modules  root  srcs  tmp    var
datalab  home  media  opt       run   srv   tools

在旧版本的Datalab中,我没有出现这样的错误。

如何使用Datalab Jupyter python单元格处理容器/content目录中的文件?

2 个答案:

答案 0 :(得分:1)

也许还可以从一个单元格中运行'git checkout'。这原则上将你的txt文件放在主机vm中,你可以调整你的路径。

我们不得不在AppEng部署的Datalab版本上做各种类型的黑客攻击,因为GPC上的git接口已经出错了。不是完美的解决方案。

此外,似乎gsutil CLI调用在%%bash的单元格中可用。您可以将文件放在存储桶上,然后使用gsutil

复制到VM中

答案 1 :(得分:0)

添加我的评论作为答案,这样就不会显示为未回答的问题:

在GCP上使用Datalab时,我发现!hostname显示了datalab网关的主机名。如果我使用Datalab local设置,我会看到本地容器的主机名。使用Datalab本地设置,我可以访问本地文件,并在运行!ls时查看内容文件夹。在GCP上使用Datalab时访问文件的一个潜在工作是使用Google云端存储。 following link有一个例子,可能会有所帮助。