【问题标题】:Google Dataproc with Jupyter - Downloading files generated by notebook带有 Jupyter 的 Google Dataproc - 下载笔记本生成的文件
【发布时间】:2019-06-07 16:29:01
【问题描述】:

我们使用 Google Cloud Dataproc 进行快速数据分析,并且经常使用 Jupyter 笔记本。我们的一个常见情况是生成一份报告,然后我们希望将其下载为 csv。

在本地 Jupyter 环境中,这可以使用 FileLink 例如:

from IPython.display import FileLinks
df.to_csv(path)
FileLinks(path)

这不适用于 Dataproc,因为笔记本保存在 Google 存储桶中,并且生成的链接与该前缀相关,例如 http://my-cluster-m:8123/notebooks/my-notebooks-bucket/notebooks/my_csv.csv

有谁知道如何克服这个问题?我们当然可以scp机器上的文件,但我们正在寻找更方便的东西。

【问题讨论】:

    标签: jupyter-notebook google-cloud-dataproc


    【解决方案1】:

    要共享报告,您可以将其保存到 Google Cloud Storage (GCS) 而不是本地文件。

    为此,您将needconvert 您的 Pandas DataFrame 到 Spark DataFrame 并将其写入 GCS:

    sparkDf = SQLContext(SparkContext.getOrCreate()).createDataFrame(df)
    sparkDf.write.csv("gs://<BUCKET>/<path>")
    

    【讨论】:

    • 谢谢,这会起作用,但不是我想要的。实际上最好使用 Dask。但我一直在寻找更方便的东西,无需转换
    • 在这种情况下,您可能想尝试通过在 FileLinks 调用中指定 url_prefix 和/或 result_html_prefix 参数来覆盖 URL 前缀。
    • 我尝试过使用它,但找不到修复它的方法。你知道我应该使用什么前缀或 html_prefix 吗?
    • 我猜你需要指定主主机名作为前缀,但无论如何你需要通过打开不安全的防火墙规则或通过 ssh 进入不方便的网络来访问互联网.这就是为什么最好的选择是使用 GCS 来共享您的报告。
    猜你喜欢
    • 1970-01-01
    • 2021-02-01
    • 2017-09-10
    • 1970-01-01
    • 2017-08-19
    • 2022-01-25
    • 2019-07-05
    • 2020-03-01
    • 1970-01-01
    相关资源
    最近更新 更多