如何读取spark 2.0中cassandra datastax的数据?
这就是我试过的-
val df = spark.read.format("org.apache.spark.sql.cassandra").options(Map("keyspace" -> "my_keyspace",
"table" -> "my_table",
"spark.cassandra.connection.config.cloud.path" -> "file:///home/training/secure-connect-My_path.zip",
"spark.cassandra.auth.password" -> "password",
"spark.cassandra.auth.username" -> "Username"
))
.load()
我得到这个错误:
Exception in thread "main" 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
当我使用DataStaxZip时,为什么我需要安装cassandra或执行任何附加步骤?
使用相同的zip文件,我可以在java程序中读取数据。为什么我不能读入Spark?
2条答案
按热度按时间pvcm50d11#
datastax astra仅在spark cassandra connector 2.5.0+中受本机支持,后者需要spark 2.4(尽管它也适用于2.3)。理论上,您可以从安全捆绑包中提取证书和其他信息,并使用它们,但这是一项繁琐的任务。所以最好升级spark版本。
但最初的问题是没有提供这个包——请看@flightc的答案。
u3r8eeie2#
你在正确的轨道上。如果您是从Spark壳连接,您将传递如下详细信息:
那么你的代码看起来像:
有关详细信息,请参阅有关连接到astra的spark cassandra连接器文档。alex ott也发表了这篇博文,“高级apache cassandra分析现在对所有人开放”。干杯!