【问题标题】:How do I use pandas.read_csv on Google Cloud ML?如何在 Google Cloud ML 上使用 pandas.read_csv?
【发布时间】:2018-07-12 04:24:20
【问题描述】:

我正在尝试在 Google Cloud ML 上部署训练脚本。当然,我已将我的数据集(CSV 文件)上传到 GCS 的存储桶中。

我曾经使用 read_csv 从 pandas 导入我的数据,但它似乎不适用于 GCS 路径。

我应该如何继续(我想继续使用 pandas)?

import pandas as pd
data = pd.read_csv("gs://bucket/folder/file.csv")

输出:

ERROR 2018-02-01 18:43:34 +0100 master-replica-0 IOError: File gs://bucket/folder/file.csv does not exist

【问题讨论】:

    标签: python pandas google-cloud-storage google-cloud-ml


    【解决方案1】:

    您需要使用tensorflow.python.lib.io 中的file_io 来执行此操作,如下所示:

    from tensorflow.python.lib.io import file_io
    from pandas.compat import StringIO
    from pandas import read_csv
    
    # read csv file from google cloud storage
    def read_data(gcs_path):     
       file_stream = file_io.FileIO(gcs_path, mode='r')
       csv_data = read_csv(StringIO(file_stream.read()))
       return csv_data
    

    现在调用上面的函数

     gcs_path = 'gs://bucket/folder/file.csv' # change path according to your bucket, folder and path
     df = read_data(gcs_path)
     # print(df.head()) # displays top 5 rows including headers as default
    

    【讨论】:

      【解决方案2】:

      Pandas 没有原生 GCS 支持。有两种选择: 1. 使用 gsutil cli 将文件复制到 VM 2.使用TensorFlow file_io库打开文件,将文件对象传递给pd.read_csv()。详细答案请参考here

      【讨论】:

        【解决方案3】:

        您还可以使用 Dask 提取数据,然后将数据加载到运行在 GCP 上的 Jupyter Notebook 中。

        确保您已安装 Dask。

        conda install dask #conda
        pip install dask[complete] #pip
        
        import dask.dataframe as dd #Import 
        
        dataframe = dd.read_csv('gs://bucket/datafile.csv') #Read CSV data
        dataframe2 = dd.read_csv('gs://bucket/path/*.csv') #Read parquet data
        

        这就是您加载数据所需的全部内容。

        您现在可以使用 Pandas 语法过滤和操作数据。

        dataframe['z'] = dataframe.x + dataframe.y

        dataframe_pd = dataframe.compute()

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-09-19
          • 1970-01-01
          • 2017-08-03
          • 2019-10-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多