目前我们正在将hive持久性存储迁移到Cassandra集群。我们一直在使用Spark 2.0和sparkR框架来运行我们的分析报告。我们刚刚开始使用Casandra集成,我们希望通过一些示例代码来启动Spark会话在R模块中。我们还需要有关在spark 2.0运行时优化此类集成的其他输入的帮助。
答案 0 :(得分:0)
您只需要遵循Spark R documentation,使用正确的Spark packages连接到Cassandra和s etup necessary properties:
以Spark支持启动R:
SPARK_HOME=`pwd` R
加载Spark R库:
library(SparkR, lib.loc = c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib")))
初始化Spark会话:
sparkR.session(master = "local[*]",
sparkConfig = list(spark.driver.memory = "2g",
spark.cassandra.connection.host = "IP"),
sparkPackages = "com.datastax.spark:spark-cassandra-connector_2.11:2.4.0")
spark.cassandra.connection.host
需要指向Cassandra主机。 sparkPackages
的值可能取决于您使用的Spark版本-它是否使用Scala 2.10或2.11等。有关更多详细信息,请参阅连接器文档。
读取数据:
df <-read.df(source = "org.apache.spark.sql.cassandra", keyspace = "test", table = "tm2")
与他们一起工作:
> head(df)
id d ts
1 1 2019-07-10 2019-07-18 11:56:16
2 2 2019-07-18 2019-07-18 11:03:10
您可以采用与其他来源相同的方式将数据保存到Cassandra表中-只需使用正确的来源:source = "org.apache.spark.sql.cassandra"