Pyspark 和 Cassandra 连接错误
Posted
技术标签:
【中文标题】Pyspark 和 Cassandra 连接错误【英文标题】:Pyspark and Cassandra Connection Error 【发布时间】:2016-12-15 11:01:44 【问题描述】:我遇到了一个问题。当我在导入 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数据库。
【问题讨论】:
你从哪里得到的导入语句?您是否阅读过 Cassandra 连接器的文档:github.com/datastax/spark-cassandra-connector#documentation?任何地方都没有提到该 import 语句,因为确实没有具有该名称的模块。 【参考方案1】:您正在混淆 DataStax 的 Spark Cassandra 连接器(在您添加到 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
当然使用 Cassandra 正在侦听的 IP 地址,并检查您需要使用的连接器版本:2.0.0-M3 是最新版本,适用于 Spark 2.0 和大多数 Cassandra 版本。如果您使用的是不同版本的 Spark,请参阅 compatibility table。 2.10
或 2.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 文档
【讨论】:
以上是关于Pyspark 和 Cassandra 连接错误的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 PySpark、SparkSQL 和 Cassandra?