Apache spark shell错误导入jar



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

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

  • 我在"E:/installprogram/spark-1.5.2-in-hadoop2.4/lib/jmatrw-v0.1-beta.jar"中复制了库
  • 编辑spark-env.sh并添加spark_CLASSPATH="E:/installprogram/spark-1.5.2-in-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"
  • 在我尝试做scala> sc.addJar("E:/installprogram/spark-1.5.2-bin-hadoop2.4/lib/jmatrw-v0.1-beta.jar")的spark shell中,它写着"信息:添加了jar…带有时间戳"

当我键入scala> import it.prz.jmatrw.JMATData时,spark shell会用error: not found: value it进行回复。

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

感谢

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

我通过在spark-defaults.conf中添加设置来实现这一点,但您可以在sparkshell或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。

相关内容

  • 没有找到相关文章

最新更新