【发布时间】:2017-03-21 22:33:59
【问题描述】:
我使用 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 并将其导出到本地。我在每个 spark slave 上放了 spark-cassandra-connector.jar
【问题讨论】:
-
您是否已将 scala 文件夹添加到类路径?如果没有:右键单击项目->属性-> java构建路径->添加文件夹->检查scala文件夹->保存/应用-
标签: eclipse apache-spark spark-cassandra-connector