我遇到了问题。当我编写示例Cassandra连接代码时,导入Cassandra Connector会产生错误。
我正在像下面的代码一样启动脚本(两个都给出了错误)
./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数据库。
您是在混合dataStax的spark cassandra连接器(在罐子中,您添加以启动spark提交)和targetholding的pyspark cassandra项目(具有pyspark_cassandra
模块)。后者被弃用,因此您可能应该使用Spark Cassandra连接器。可以在此处找到此软件包的文档。
要使用它,您可以添加以下标志来激发提交:
--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,请参见兼容性表。2.10
或2.11
是Scala您的Spark版本的版本。如果使用Spark 2,默认情况下为2.11,在2.x之前是2.10。
那么,与连接器一起使用的最佳方法是使用它来读取数据框,看起来像这样:
sqlContext.read
.format("org.apache.spark.sql.cassandra")
.options(table="kv", keyspace="test")
.load().show()
有关更多详细信息,请参见带有DataFrames文档的PySpark