Pyspark和Cassandra连接错误

时间:2016-12-15 11:01:45

标签: apache-spark cassandra pyspark apache-spark-sql spark-cassandra-connector

我遇到了一个问题。当我编写示例cassandra连接代码时,导入cassandra连接器会出错。

我正在启动脚本,如下面的代码(两者都给出了错误)

./spark-submit --jars spark-cassandra-connector_2.11-1.6.0-M1.jar /home/beyhan/sparkCassandra.py

./spark-submit --jars spark-cassandra-connector_2.10-1.6.0.jar /home/beyhan/sparkCassandra.py

但在

时给出以下错误
import pyspark_cassandra
  

ImportError:没有名为pyspark_cassandra的模块

我做错了哪一部分?

注意:我已经安装了cassandra数据库。

1 个答案:

答案 0 :(得分:1)

您正在混合使用DataStax的Spark Cassandra Connector(在您添加到spark提交的jar中)和TargetHolding的PySpark Cassandra项目(具有pyspark_cassandra模块)。后者已弃用,因此您应该使用Spark Cassandra Connector。可以找到此程序包的文档here

要使用它,您可以添加以下标志以引发提交:

--conf spark.cassandra.connection.host=127.0.0.1 \
--packages com.datastax.spark:spark-cassandra-connector_2.11:2.0.0-M3

当然使用Cassandra正在侦听的IP地址,并检查您需要使用的连接器版本:2.0.0-M3是最新版本,适用于Spark 2.0和大多数Cassandra版本。如果您使用的是其他版本的Spark,请参阅compatibility table2.102.11是您的Spark版本构建的Scala版本。如果您使用Spark 2,默认情况下它是2.11,在2.x之前它是版本2.10。

然后使用连接器的最好方法是使用它来读取数据帧,如下所示:

 sqlContext.read\
  .format("org.apache.spark.sql.cassandra")\
  .options(table="kv", keyspace="test")\
  .load().show()

有关详细信息,请参阅PySpark with DataFrames文档