1

、我々はそうのように、カサンドラテーブルに対して直接クエリを実行するcassandraSqlContextを使用することができます:スパーク2.1でそのような機能はSpark 2.1でCassandraテーブルを直接クエリする方法は?スパーク1.6では

cassandraSqlContext.sql("select * from keyspace.tableName") 

ありますか?

私はspark 2.1にはcassandra SQLコンテキストがないことを知っていますが、代わりにsparkセッションがあります。もし私がしたらspark.sql("select * from keyspace.tableName")それは未解決の関係についてのエラーを投げるか、tablenameは存在しません。

しかし、私はcassandraテーブルをデータフレームに登録し、データフレームにクエリを実行できます。

これは、2.1でcassandraテーブルをクエリする唯一の方法ですか?

def registerMetaDataDF(adminKeySpace: String, tableName:String): DataFrame = { 
    val df = sparkSession.read.format("org.apache.spark.sql.cassandra") 
     .options(Map("table" -> tableName, "keyspace" -> adminKeySpace)) 
     .load() 
    df 
    } 

答えて

0

かかわらず、スパークバージョンの、スパークアプリケーションからカサンドラにアクセスするspark-cassandra-connectorパッケージが必要です。

このライブラリを使用すると、スパークRDDSとしてカサンドラテーブルを公開カサンドラテーブルにスパークRDDSを書き、任意の実行することができますSparkアプリケーションのCQLクエリ。

だから、あなたの質問は本当に以下に要約:

は、Spark 2.1で行っcassandraSqlContextですか?あなたは手動でいくつかのCQL文を発行するために、カサンドラに接続する必要がある場合

、このドライバは便利を提供しています:

私の限られた経験がCassandraConnectorはあなたが見てみたいことが何かであることを私に伝えますSparkConfオブジェクトから初期化でき、クラスターおよびセッションオブジェクトへのアクセスを提供するCassandraConnectorクラス。 CassandraConnectorのインスタンスは直列化可能であるため、上記の例のようにSpark変換に渡されたラムダでも安全に使用できます。

+0

https://github.com/datastax/spark-cassandra-connector/blob/master/doc/14_data_frames.md、彼らはちょっと私と同じことをしています。 – Ahmed

+0

私はカッサンドラのテーブルにアクセスする他の方法があるとは言いませんでした。私はCQLを実行することはCassandraConnectorを介していると言いました。 –

関連する問題