我使用Eclipse IDE,在我的项目中添加了来自spark的所有罐子"添加外部罐子",使用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,所以我下载所有的罐子并在本地导出。在每个火花奴隶上我都用了spark-cassandra-connector.jar
答案 0 :(得分:0)
我解决了。只需将我的项目作为jar导出到Eclipse的本地文件夹中,然后在我的代码中添加sc.addJars("localPathToJar")
,它就能正常工作