如何在 Google Cloud ML 上使用 pandas.read_csv?
How do I use pandas.read_csv on Google Cloud ML?
我正在尝试在 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
Pandas 没有本地 GCS 支持。有两种选择:
1. 使用 gsutil cli 将文件复制到 VM
2. 使用TensorFlow file_io 库打开文件,并将文件对象传递给pd.read_csv()。详细答案请参考.
您将需要使用 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
您还可以使用 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()
我正在尝试在 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
Pandas 没有本地 GCS 支持。有两种选择:
1. 使用 gsutil cli 将文件复制到 VM
2. 使用TensorFlow file_io 库打开文件,并将文件对象传递给pd.read_csv()。详细答案请参考
您将需要使用 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
您还可以使用 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()