我在我的ubuntu 14.04上安装了cassandra 2.1.11,spark 2.0.0.bin hadoop 2.7和java version 1.8.0_101。 对于Spark Cassandra Connector,我安装了git
var TaskSchema = new Schema({
Name : {type: String},
Email : {type: String},
Tasks : [Schema.Types.Mixed]
}, {strict: false});
module.exports = mongoose.model('Task', TaskSchema);
并构建它
sudo apt-get install git
git clone https://github.com/datastax/spark-cassandra-connector.git
并将scala jar放在主目录
上cd spark-cassandra-connector
git checkout v1.4.0
./sbt/sbt assembly
并使用连接器
cp spark-cassandra-connector/target/scala-2.10/spark-cassandra-connector-assembly-1.4.0-SNAPSHOT.jar ~
和scala promt
bin/spark-shell --jars ~/spark-cassandra-connector-assembly-1.4.0-SNAPSHOT.jar
我已经从cqlsh创建了测试键空间和表 my_table 并测试了连接,我运行了以下命令
sc.stop
import com.datastax.spark.connector._, org.apache.spark.SparkContext, org.apache.spark.SparkContext._, org.apache.spark.SparkConf
val conf = new SparkConf(true).set("spark.cassandra.connection.host", "localhost")
val sc = new SparkContext(conf)
并收到错误
eval test_spark_rdd = sc.cassandraTable("test", "my_table")
这是由于spark和cassandra的版本不匹配吗?
答案 0 :(得分:4)
这是Spark和Spark之间的不匹配。您选择将1.4.0库与Spark 2.0.0一起使用。
使用2.0.0版本并使用Spark包。
https://spark-packages.org/package/datastax/spark-cassandra-connector
> $SPARK_HOME/bin/spark-shell --packages datastax:spark-cassandra-connector:2.0.0-M2-s_2.11