我有一个用 maven 打包的 spark 应用程序。在运行时,我必须提供 3 个参数(创建 RDD 的 3 个文件的路径)。所以我使用 spark-submit 命令作为 spark 的官方网站指示:
./bin/spark-submit \
--class <main-class> \
--master <master-url> \
--deploy-mode <deploy-mode> \
--conf <key>=<value> \
.. # other options
<application-jar> \
[application-arguments]
我的提交命令看起来像:
\bin\spark-submit --class myapp.Main --master local[*] file:///C:\Users\pc\Desktop\eclipse\myapp\target\myapp-0.0.1-SNAPSHOT.jar ["C:\Users\pc\Desktop\pathToFile1.csv", "C:\Users\pc\Desktop\pathToFile2.csv", "C:\Users\pc\Desktop\pathToFile3.csv"]
我如下修改了我的主类以在运行时获取路径:
String pathToFile1=args[0];
String pathToFile2=args[1];
String pathToFile3=args[2];
但是我收到一条错误消息,指出指定的路径不存在。我在这里做错了什么?
最佳答案
@bradimus 你是对的,我不必使用 [],我必须把它写成:
\bin\spark-submit --class myapp.Main --master local[*] file:///C:\Users\pc\Desktop\eclipse\myapp\target\myapp-0.0.1-SNAPSHOT.jar C:\Users\pc\Desktop\pathToFile1.csv C:\Users\pc\Desktop\pathToFile2.csv C:\Users\pc\Desktop\pathToFile3.csv
关于java - 使用参数运行我的 jar 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38861705/