我已成功将数据从已弃用的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
目录中的文件?
答案 0 :(得分:1)
也许还可以从一个单元格中运行'git checkout'。这原则上将你的txt文件放在主机vm中,你可以调整你的路径。
我们不得不在AppEng部署的Datalab版本上做各种类型的黑客攻击,因为GPC上的git接口已经出错了。不是完美的解决方案。
此外,似乎gsutil
CLI调用在%%bash
的单元格中可用。您可以将文件放在存储桶上,然后使用gsutil
答案 1 :(得分:0)
添加我的评论作为答案,这样就不会显示为未回答的问题:
在GCP上使用Datalab时,我发现!hostname
显示了datalab网关的主机名。如果我使用Datalab local设置,我会看到本地容器的主机名。使用Datalab本地设置,我可以访问本地文件,并在运行!ls
时查看内容文件夹。在GCP上使用Datalab时访问文件的一个潜在工作是使用Google云端存储。 following link有一个例子,可能会有所帮助。