Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
apachesparkshell错误导入jars_Jar_Apache Spark_Apache Spark 1.5.2 - Fatal编程技术网

apachesparkshell错误导入jars

apachesparkshell错误导入jars,jar,apache-spark,apache-spark-1.5.2,Jar,Apache Spark,Apache Spark 1.5.2,如前所述,我在Windows上安装了本地spark 1.5.2(hadoop 2.4) 我正在尝试导入一个jar文件,该文件是我使用maven在Java中创建的(jar是我上传到github上的jmatrw)。注意,jar不包括spark程序,并且它与spark没有依赖关系。我尝试了以下步骤,但似乎没有人在我的安装中工作: 我在“E:/installprogram/spark-1.5.2-bin-hadoop2.4/lib/jmatrw-v0.1-beta.jar”中复制了该库 编辑spark

如前所述,我在Windows上安装了本地spark 1.5.2(hadoop 2.4)

我正在尝试导入一个jar文件,该文件是我使用maven在Java中创建的(jar是我上传到github上的jmatrw)。注意,jar不包括spark程序,并且它与spark没有依赖关系。我尝试了以下步骤,但似乎没有人在我的安装中工作:

  • 我在“E:/installprogram/spark-1.5.2-bin-hadoop2.4/lib/jmatrw-v0.1-beta.jar”中复制了该库
  • 编辑spark-env.sh并添加spark_CLASSPATH=“E:/installprogram/spark-1.5.2-bin-hadoop2.4/lib/jmatrw-v0.1-beta.jar”
  • 在命令窗口中,我运行spark shell--jars“E:/installprogram/spark-1.5.2-bin-hadoop2.4/lib/jmatrw-v0.1-beta.jar”,但它显示“警告:跳过远程jar”
  • 在spark shell中,我尝试执行
    scala>sc.addJar(“E:/installprogram/spark-1.5.2-bin-hadoop2.4/lib/jmatrw-v0.1-beta.jar”)
    ,它说“INFO:added jar…with timestamp”
当我键入
scala>import it.prz.jmatrw.JMATData
时,spark shell会回复
错误:未找到:对其进行赋值

我花了很多时间在Stackoverflow和Google上搜索,确实有一个类似的Stakoverflow问题,但我仍然无法导入我的自定义jar


谢谢

在1.5.2中有两个设置用于引用外部jar。您可以为驱动程序或执行者添加它

我通过向
spark defaults.conf
添加设置来实现这一点,但您可以在spark shell或
SparkConf
中设置这些设置

spark.driver.extraClassPath /path/to/jar/*
spark.executor.extraClassPath /path/to/jar/*
我看不出您的操作方式有任何错误,但是您可以尝试上面的conf方法,或者使用
SparkConf

val conf = new SparkConf()
conf.set("spark.driver.extraClassPath", "/path/to/jar/*")
val sc = new SparkContext(conf)

总的来说,我不喜欢在Windows上使用Spark。尝试进入Unix/Linux。

我将设置
spark.driver.extraClassPath
添加到
spark defaults.conf
文件中,它可以工作!实际上,SPARK 1.0+中不推荐使用SPARK_类路径,正如SPARK日志警告中所建议的那样。谢谢你花时间阅读和回答我的问题。