我使用Eclipse IDE,将来自spark的所有jar添加到我的项目中作为“添加外部jar”,使用spark-cassandra连接器。使用独立集群。我的代码示例代码是:
import com.datastax.spark.driver._
import com.datastax.spark.connector._
import org.apache.spark.{SparkConf, SparkContext}
object connect extends App {
val conf = new SparkConf(true).setMaster("spark://192.168.0.1:7077").setAppName("test").set("spark.cassandra.connection.host","192.168.0.2")
val sc = new SparkContext(conf)
val rdd = sc.cassandraTable("ks", "tbl")
如果我尝试使用println(rdd.count)
,则一切正常,但如果我使用val filterRdd = rdd.filter(x => x.getString(1).contains("teststr")) println (filterRdd.count)
,则会出现ClassNonFoundException。
它不仅对Cassandra,每一个行动与rdd的结果在错误。本地为本地主人它工作完美。
我怎么才能让它工作,我的笔记本电脑不能连接到互联网,所以我不能使用maven,所以我下载了所有的jar文件,并将其导出到本地。
1条答案
按热度按时间huus2vyu1#
我解决了这个问题。只需将我的项目作为jar导出到Eclipse的本地文件夹中,然后在我的代码中添加
sc.addJars("localPathToJar")
,它就可以工作了