6

从 colaboratory,是否可以直接在 google drive 中操作 sqlite 3 格式的数据?如果你上传它是可能的,但在谷歌驱动器中使用它很方便。

4

2 回答 2

8

您可以通过将 Google Drive 挂载为 FUSE 文件系统来从 Drive 加载文件目录。

这是一个示例: https ://colab.research.google.com/notebook#fileId=1srw_HFWQ2SMgmWIawucXfusGzrj1_U0q

没有官方的 Google Drive FUSE 文件系统。但是,第三方已经编写了几个开源 FUSE + Drive 库。上面的示例笔记本使用 google-drive-ocamlfuse。笔记本显示了三件事:

  1. 在 Colab VM 中安装 Drive FUSE 包装器。
  2. 使用 FUSE 包装器对 Drive 进行身份验证并安装 Drive。
  3. 在新安装的驱动器支持的文件系统中列出和创建文件。
于 2017-11-24T21:18:59.447 回答
0

首先,将 database.sqlite 和所需的 csv 文件(在我的情况下为 Reviews.csv)上传到 Google Drive。

然后,您需要使用以下命令在 Google Colab 中安装您的驱动器:

from google.colab import drive
drive.mount('/content/gdrive')

这将导致以下输出:

Go to this URL in a browser: https://accounts.google.com/o/oauth2/auth?client_id=947318989803-6bn6qk8qdgf4n4g3pfee6491hc0brc4i.apps.googleusercontent.com&redirect_uri=urn%3aietf%3awg%3aoauth%3a2.0%3aoob&response_type=code&scope=email%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdocs.test%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdrive%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdrive.photos.readonly%20https%3a%2f%2fwww.googleapis.com%2fauth%2fpeopleapi.readonly

Enter your authorization code:

单击 URL 将指向一个新选项卡,该选项卡显示您的 Google 帐户以向 Google Drive File Stream 提供某些权限:

Choose an account
to continue to Google Drive File Stream

您必须选择登录 Google Colab 时使用的同一 Google 帐户。然后单击“允许”按钮。这将导致另一个页面显示字母数字代码。复制代码并将其粘贴到文本区域(输入您的授权代码:)。

因此,将显示有关正在安装的驱动器的消息:

··········
Mounted at /content/gdrive

现在单击文件夹图标(在“显示代码片段窗格”下方,位于代码单元格的左侧),您可以看到 gdrive 文件夹。您的 Google Drive - My Drive 将位于 gdrive 内。现在单击存储 database.sqlite 文件的所需文件夹。右键单击它并选择“复制路径”。

您复制的路径应粘贴在以下命令的路径链接中:

con = sqlite3.connect('paste the path you copied')

例如,如果 database.sqlite 位于“/content/gdrive/My Drive/Colab Notebooks/database.sqlite”中,则命令如下:

con = sqlite3.connect('/content/gdrive/My Drive/Colab Notebooks/database.sqlite')

现在您可以运行一些 SQL 查询来检查是否一切正常:

filtered_data = pd.read_sql_query("""
SELECT * 
FROM Reviews
WHERE Score != 3
""", con)
print(filtered_data.head())
于 2020-04-08T11:03:38.887 回答