Я использую Apache Spark на моем компьютере с Windows. Я относительно новичок в этом, и я работаю локально, прежде чем загружать свой код в кластер.Apache Spark: Импортные банки
Я написал очень простую программу SCALA и все работает отлично:
println("creating Dataframe from json")
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
val rawData = sqlContext.read.json("test_data.txt")
println("this is the test data table")
rawData.show()
println("finished running")
Программа корректно выполняет. Теперь я хочу добавить некоторую обработку, которая вызывает некоторые простые функции Java, которые я предварительно упаковал в JAR-файл. Я запускаю оболочку scala. Как говорится на странице Начало работы, я запуска оболочки с:
c:\Users\eshalev\Desktop\spark-1.4.1-bin-hadoop2.6\bin\spark-shell --master local[4] --jars myjar-1.0-SNAPSHOT.jar
важный факт: я не установлен Hadoop на моей локальной машине. Но поскольку я только разбираю текстовый файл, это не имеет значения, и это не имело значения, пока я не использовал -jars.
Теперь я перехожу к той же программе scala. Там нет ссылки на файл фляга еще ... На этот раз я получаю:
...some SPARK debug code here and then...
15/09/08 14:27:37 INFO Executor: Fetching http://10.61.97.179:62752/jars/myjar-1.0-SNAPSHOT.jar with timestamp 144
1715239626
15/09/08 14:27:37 INFO Utils: Fetching http://10.61.97.179:62752/jars/myjar-1.0-SNAPSHOT.jar-1.0 to C:\Users\eshalev\A
ppData\Local\Temp\spark-dd9eb37f-4033-4c37-bdbf-5df309b5eace\userFiles-ebe63c02-8161-4162-9dc0-74e3df6f7356\fetchFileTem
p2982091960655942774.tmp
15/09/08 14:27:37 INFO Executor: Fetching http://10.61.97.179:62752/jars/myjar-1.0-SNAPSHOT.jar with timestamp 144
1715239626
15/09/08 14:27:37 ERROR Executor: Exception in task 1.0 in stage 0.0 (TID 1)
java.lang.NullPointerException
at java.lang.ProcessBuilder.start(Unknown Source)
at org.apache.hadoop.util.Shell.runCommand(Shell.java:482)
at org.apache.hadoop.util.Shell.run(Shell.java:455)
at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:715)
at org.apache.hadoop.fs.FileUtil.chmod(FileUtil.java:873)
at org.apache.hadoop.fs.FileUtil.chmod(FileUtil.java:853)
at org.apache.spark.util.Utils$.fetchFile(Utils.scala:465)
... aplenty more spark debug messages here, and then ...
this is the test data table
<console>:20: error: not found: value rawData
rawData.show()
^
finished running
Я перепроверил http://10.61.97.179:62752/jars/myjar-1.0-SNAPSHOT.jar-1.0-SNAPSHOT.jar, и я могу скачать это просто отлично. И опять же ничего в коде не упоминается. Если запустить оболочку без -jar, все работает нормально.
Является ли код выше в объекте scala? Если это так, вы бы хотели использовать spark-submit вместо spark-shell –
Нет, как видно из фрагмента, это не объект. И поскольку упомянутая искра успешно запускает scala без ошибок, пока я не использую флаг -jar при запуске искры. (Я не пытаюсь вызвать код java * еще *) – eshalev
Мне было интересно, потому что вы написали «Я написал очень простую программу scala, и все работает нормально:« Что в этой банке? Можете ли вы предоставить более конкретную информацию? –