Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有没有办法管理从本地到云的路径更改?_Python_Google Cloud Platform_Pyspark_Path - Fatal编程技术网

Python 有没有办法管理从本地到云的路径更改?

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

我经常使用PySpark在大型数据分析项目上进行协作。我们用本地文件开发了这个项目。现在我们想把这个项目部署到谷歌云上。 由于有很多本地路径,我们必须将它们更改为google云路径。有没有管理路径和路径的好方法?这种方式应该促进从本地到云的变化。 我尝试将每个路径添加为变量。例如:

# [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。这样做的目的是减少在环境之间切换时要更改的变量数量。另外,如果有很多路径和文件,如果这些信息在另一个配置文件中,那么可能会更干净、更容易读取和修改