Я бы хотел получить доступ к Кассандре, используя scala в блокноте Jupyter.Чтобы работать с DataFrames, мне нужно использовать разъем spark-cassandra для scala.
Это исключение, которое возникает:
java.lang.ClassNotFoundException: Failed to find data source:org.apache.spark.sql.cassandra. Please find packages at http://spark.apache.org/third-party-projects.html
at org.apache.spark.sql.execution.datasources.DataSource$.lookupDataSource(DataSo urce.scala:635)
at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:190)
at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:164)
... 37 elided
Caused by: java.lang.ClassNotFoundException: org.apache.spark.sql.cassandra.DefaultSource
Среда:
- Анаконда: 3.5.2
- Версия Conda: 4.5.11
- Pyspark: 2.3.1
- Python: 3.7.1
- spark-cassandra-connector 2.3.1
На основании документации эта команда была выполнена в терминале anaconda для конкретного env:
spark-shell --packages datastax:spark-cassandra-connector:2.3.1-s_2.11 \
--conf "spark.cassandra.connection.host=127.0.0.1" \
--conf "spark.cassandra.auth.username=cassandra" \
--conf "spark.cassandra.auth.password=cassandra"
Я пробовал в разных формах, но не смогвыполните команду tho spark-submit
Код для ноутбука Jupyter с scala (spylon):
import org.apache.spark.ml.feature.Word2Vec;
import org.apache.spark.{SparkContext, SparkConf}
import org.apache.spark.sql.SQLContext
val sqlContext = new SQLContext(sc)
val df = sqlContext.read
.format("org.apache.spark.sql.cassandra")
.options(Map( "table" -> "article", "keyspace" -> "spike"))
.load()
df.show()
Также попытался настроить контекст без успеха:
val conf = new SparkConf()//true
.set("spark.cassandra.connection.host", "127.0.0.1")
.set("spark.cassandra.auth.username", "cassandra")
.set("spark.cassandra.auth.password", "cassandra")
//.set("spark.driver.allowMultipleContexts", "true")
.setAppName("app")
.setMaster("local[*]")//[2]
//.set("spark.ui.port", "44040")
val sc = new SparkContext(conf)//SparkContext.getOrCreate(conf)
val sqlContext = new SQLContext(sc)
Как правильно настроить разъем spark-cassandra для scala для правильной работы в ноутбуке Jupyter (Anaconda)?