apachesparkshell错误导入jars
如前所述,我在Windows上安装了本地spark 1.5.2(hadoop 2.4) 我正在尝试导入一个jar文件,该文件是我使用maven在Java中创建的(jar是我上传到github上的jmatrw)。注意,jar不包括spark程序,并且它与spark没有依赖关系。我尝试了以下步骤,但似乎没有人在我的安装中工作: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
- 我在“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中,我尝试执行
,它说“INFO:added jar…with timestamp”scala>sc.addJar(“E:/installprogram/spark-1.5.2-bin-hadoop2.4/lib/jmatrw-v0.1-beta.jar”)
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日志警告中所建议的那样。谢谢你花时间阅读和回答我的问题。