Python 使用AWS EMR时,请提交如何使其接受带有空格的路径
我试图从AWS控制台使用路径中带有空格的EMR步骤,但由于某些原因,spark submit会做一些奇怪的事情,并且在引入空格时不起作用 命令Python 使用AWS EMR时,请提交如何使其接受带有空格的路径,python,amazon-web-services,apache-spark,amazon-s3,Python,Amazon Web Services,Apache Spark,Amazon S3,我试图从AWS控制台使用路径中带有空格的EMR步骤,但由于某些原因,spark submit会做一些奇怪的事情,并且在引入空格时不起作用 命令 spark-submit "s3://bucket/prefix with spaces/stepCode.py" spark-submit 's3://bucket/prefix with spaces/stepCode.py' spark-submit s3://bucket/prefix%with%spaces/stepCode.py 来自AWS
spark-submit "s3://bucket/prefix with spaces/stepCode.py"
spark-submit 's3://bucket/prefix with spaces/stepCode.py'
spark-submit s3://bucket/prefix%with%spaces/stepCode.py
来自AWS的错误
python: can't open file '/mnt/var/lib/hadoop/steps/s-3XXXXXXXXXXXX/s3:/bucket/prefix with spaces/stepCode.py': [Errno 2] No such file or directory
然而,这是可行的
spark-submit s3://bucket/nospaces/stepCode.py
代码不知怎的被转储到下面
/mnt/tmp/spark-XXXXXX-XXXXXXXX-XXXXXXX-XXXXXXX/stepCode.py
你知道如何让spark接受一条有空格的路径吗?
谢谢尝试用
反斜杠\
转义空格
spark-submit s3://bucket/prefix\ with\ spaces/stepCode.py
它不起作用。返回时出现错误“线程“main”org.apache.spark.sparkeexception:无法从JAR文件加载主类:/mnt/var/lib/hadoop/steps/s-xxxxxxxxxx/s3:/mybucket/prefix%5C”。这意味着文件已加载,但EMR找不到
主类
@lamanus,这听起来不正确,因为出现了错误。因为错误是file:/…/s-XX/s3:/。。。而不是文件:/…/s-XX/filename.py我认为这“可能”意味着该文件正在正确地将文件从s3复制到要运行的主核心,但它不是只将文件名传递给主核心,而是在告诉主核心实际运行复制的命令时传递整个路径。哦,我明白了。那么请试试s3a。今天有时间的时候我会测试一下。