Dataproc 不会解压作为存档传递的文件

dee*_*zen 7 .net apache-spark google-cloud-platform google-cloud-dataproc

我正在尝试使用 .NET Spark 作业提交 Dataproc。

命令行如下所示:

gcloud dataproc jobs submit spark \
    --cluster=<cluster> \
    --region=<region> \
    --class=org.apache.spark.deploy.dotnet.DotnetRunner \
    --jars=gs://bucket/microsoft-spark-2.4.x-0.11.0.jar \
    --archives=gs://bucket/dotnet-build-output.zip \
    -- find
Run Code Online (Sandbox Code Playgroud)

该命令行应调用find函数来显示当前目录中的文件。

我只看到 2 个文件:

././microsoft-spark-2.4.x-0.11.0.jar
././microsoft-spark-2.4.x-0.11.0.jar.crc
Run Code Online (Sandbox Code Playgroud)

最终,GCP 不会从指定为 的存储中解压文件--archives。指定的文件存在,并且路径是从 GCP UI 复制的。我还尝试从存档(存在)中运行一个精确的程序集文件,但它合理地失败了File does not exist

dee*_*zen 0

正如@dagang提到的--archives--files参数不会将zip文件复制到驱动程序实例,所以这是错误的方向。

我使用了这种方法:

gcloud dataproc jobs submit spark \
        --cluster=<cluster> \
        --region=<region> \
        --class=org.apache.spark.deploy.dotnet.DotnetRunner \
        --jars=gs://<bucket>/microsoft-spark-2.4.x-0.11.0.jar \
        -- /bin/sh -c "gsutil cp gs://<bucket>/builds/test.zip . && unzip -n test.zip && chmod +x ./Spark.Job.Test && ./Spark.Job.Test"
Run Code Online (Sandbox Code Playgroud)