Python 有没有办法管理从本地到云的路径更改?
我经常使用PySpark在大型数据分析项目上进行协作。我们用本地文件开发了这个项目。现在我们想把这个项目部署到谷歌云上。 由于有很多本地路径,我们必须将它们更改为google云路径。有没有管理路径和路径的好方法?这种方式应该促进从本地到云的变化。 我尝试将每个路径添加为变量。例如:Python 有没有办法管理从本地到云的路径更改?,python,google-cloud-platform,pyspark,path,Python,Google Cloud Platform,Pyspark,Path,我经常使用PySpark在大型数据分析项目上进行协作。我们用本地文件开发了这个项目。现在我们想把这个项目部署到谷歌云上。 由于有很多本地路径,我们必须将它们更改为google云路径。有没有管理路径和路径的好方法?这种方式应该促进从本地到云的变化。 我尝试将每个路径添加为变量。例如: # [START download-data] iris_data_filename = 'iris_data.csv' iris_target_filename = 'iris_target.csv' dat
# [START download-data]
iris_data_filename = 'iris_data.csv'
iris_target_filename = 'iris_target.csv'
data_dir = 'gs://cloud-samples-data/ml-engine/iris'
# gsutil outputs everything to stderr so we need to divert it to stdout.
subprocess.check_call(['gsutil', 'cp', os.path.join(data_dir,
iris_data_filename),
iris_data_filename], stderr=sys.stdout)
subprocess.check_call(['gsutil', 'cp', os.path.join(data_dir,
iris_target_filename),
iris_target_filename], stderr=sys.stdout)
# [END download-data]
# [START load-into-pandas]
# Load data into pandas, then use `.values` to get NumPy arrays
iris_data = pd.read_csv(iris_data_filename).values
iris_target = pd.read_csv(iris_target_filename).values
谢谢是的,我会在一个变量中保留本地路径的base dir,在另一个变量中保留云存储路径,因此您可以根据环境轻松地在它们之间切换
LOCAL_DIR='/home/user/DIR'
GCS_DIR='gs://my bucket/DIR'
#根据需要选择数据目录值
数据目录=本地目录,如果当前目录=本地目录
#继续工作
iris\u target\u filename='iris\u target.csv'
#完整路径的示例
完整路径=os.path.join(数据目录、iris目标文件名)
此外,由于pandas 0.24,如果已安装,则可以直接使用GCS路径,而无需先下载文件,这将使在环境之间切换更容易
例如:
pd.read\u csv('gs://cloud samples data/ml engine/iris/iris\u data.csv'))
非常感谢这个好例子。但是我们有很多子目录(data_dir='gs://cloud-samples-data/ml-engine/iris',data_dir_2='gs://cloud-samples-data/ml-engine/setosa',data_dir_3='gs://cloud-samples-data/ml-engine2'…)。这是一种处理它们的理想方法,还是最好将所有路径保存在另一个配置代码中?如果所有路径的基本bucket都是“gs://cloud samples data”,则可以使用我提到的相同方法,并在文件名“ml engine/setosa”中添加额外的dir。这样做的目的是减少在环境之间切换时要更改的变量数量。另外,如果有很多路径和文件,如果这些信息在另一个配置文件中,那么可能会更干净、更容易读取和修改