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() 

詳情參見