1

我遇到了问题。当我编写示例cassandra连接代码而导入cassandra连接器给出错误时。Pyspark和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: No module named pyspark_cassandra

哪一部分我做错了什么?

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

+0

PySpark with DataFrames文档,你在哪里买的import语句从?阅读过Cassandra连接器的文档:https://github.com/datastax/spark-cassandra-connector#documentation?该导入语句在任何地方都没有提及,因为实际上没有该名称的模块。 – sgvd

回答

1

您正在混合DataStax的Spark Cassandra Connector(在您添加的用于spark提交的jar中)和TargetHolding的PySpark Cassandra项目(其中包含pyspark_cassandra模块)。后者已被弃用,所以你应该使用Spark Cassandra连接器。这个包的文件可以在here找到。

要使用它,你可以添加以下标志火花提交:

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

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

然后与连接器的工作的最好方法是使用它来读取dataframes,它看起来像这样:

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

详情参见