You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GCP Serverless PySpark路径含非法字符报错求助(Windows环境)

Windows下gcloud提交Dataproc PySpark批处理反斜杠路径错误的解决办法

问题场景

在Windows本地机器执行gcloud dataproc batches submit pyspark提交简单Python代码时,触发Java路径解析报错:

=========== Cloud Dataproc Agent Error ===========
java.lang.IllegalArgumentException: Illegal character in path at index 38: gs://my-bucket/dependencies\\hello.py
    at java.base/java.net.URI.create(URI.java:883)
    at com.google.cloud.hadoop.services.agent.job.handler.AbstractJobHandler.registerResourceForDownload(AbstractJobHandler.java:592)

执行命令:

gcloud dataproc batches submit pyspark hello.py --batch=hello-batch-5 --deps-bucket=my-bucket --region=us-central1

测试用Python代码:

if __name__ == '__main__':
    print("Hello")

问题根源是Windows系统的反斜杠路径分隔符被gcloud带入GCS路径,而Java URI规范不允许反斜杠存在。

解决方法

1. 临时配置gcloud使用Python标准路径处理

在Windows命令行(CMD/PowerShell)中先设置环境变量,再执行命令:

set CLOUDSDK_PYTHON_SITEPACKAGES=1
gcloud dataproc batches submit pyspark hello.py --batch=hello-batch-5 --deps-bucket=my-bucket --region=us-central1

该配置会让gcloud调用Python的路径处理逻辑,自动将反斜杠转换为正斜杠。

2. 手动指定GCS文件路径

先把hello.py手动上传到gs://my-bucket/dependencies/hello.py,再用--files参数指定GCS路径:

gcloud dataproc batches submit pyspark --files gs://my-bucket/dependencies/hello.py --batch=hello-batch-5 --deps-bucket=my-bucket --region=us-central1

3. 使用WSL执行命令

在Windows子系统Linux(WSL)环境中运行原gcloud命令,Linux环境默认使用正斜杠作为路径分隔符,不会触发该问题。

内容的提问来源于stack exchange,提问作者Pankaj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 11:35:28