问题标签 [spark-cassandra-connector]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - Spark 1.5.1 + Scala 2.10 + Kafka + Cassandra = Java.lang.NoSuchMethodError:
我想将 Kafka + Cassandra 连接到 Spark 1.5.1。
库的版本:
app的初始化和使用:
像这样在 Cassandra 中创建模式:
同样在准备好的时候jar
,制定一些策略:
我认为这个问题与
捆绑使用MergeStrategy.last
。
有任何想法吗?
有异常:
scala - 将不同的对象类型保存为spark中cassandra中相同RDD的一部分
我正在并行化 spark 中的查询列表,并且我的 RDD 被映射到对象集合中,其中对象类型会根据每个查询的数据源属性而不同。我有一个 String -> 函数的映射,其中每个函数都为我提供了要保存到 cassandra 中的对象集合。例如:
其中 processTrendsResponse 被定义为返回 Seq[Trends] 和 processYahooResponse 返回 Seq[Yahoo] 的函数,其中 Trends 和 Yahoo 定义被定义为案例类:
为了适应 Trends 和 Yahoo 类型,processingMethods Map 被定义为 Map[String, (String) => Seq[Any]]。但是当我在 spark 中执行 saveToCassandra 操作时,我遇到了一个例外 -
提前致谢
java - 如何通过更改架构和添加其他属性将 DataFrame 从 Spark 保存到 Cassandra 表
我使用 Spark SQL 从 Cassandra 数据库中检索数据:
之后我进行了一些过滤,我想将这些数据保存到另一个 Cassandra 表中,如下所示:
DataFrame
保存到新表时如何添加这些附加属性?另外,使用此示例对 Cassandra 长行进行分片的最佳做法是什么?我希望在 4k-6k 记录中DataFrame
,因此必须对长行进行分片,但我不确定计算记录然后更改sharder
一定数量的项目是否是 Spark 或 Cassandra 中的最佳实践。
apache-spark - Spark Cassandra 连接器的 NoSuchMethodError
我正在尝试让 Cassandra 2.2.3(在 localhost 上运行)与 Spark 1.5.1 和最新版本的 spark-cassandra-connector (1.5.0-M2) 一起使用。
这是我正在使用的基本代码段。键空间和表已经创建。
sbt 程序集编译时没有任何问题,但在提交应用程序时出现此错误:
java - Spark 执行每个动作两次
我创建了一个简单的 Java 应用程序,它使用 Apache Spark 从 Cassandra 检索数据,对其进行一些转换并将其保存在另一个 Cassandra 表中。
我正在使用以独立集群模式配置的 Apache Spark 1.4.1,在我的机器上只有一个主从模式。
如您所见,我cache
是customersWhoHaventOrderedTheProduct
DataFrame,之后我执行 acount
并调用toJavaRDD
.
根据我的计算,这些动作应该只执行一次。但是,当我进入当前工作的 Spark UI 时,我会看到以下阶段:
如您所见,每个动作都执行了两次。
难道我做错了什么?有没有我错过的设置?
任何想法都非常感谢。
编辑:
我打电话后System.out.println(storeCustomerReport.toJavaRDD().toDebugString());
这是调试字符串:
编辑2:
因此,经过一些研究并结合试验和错误,我设法优化了这项工作。
我创建了一个 RDD,customersWhoHaventOrderedTheProduct
并在调用操作之前将其缓存count()
。(我将缓存从 移动DataFrame
到RDD
)。
之后,我使用它RDD
来创建storeCustomerReport
DataFrame
.
现在阶段看起来像这样:
如您所见,这两个count
现在cache
都消失了,但仍然有两个“javaRDD”操作。我不知道它们来自哪里,因为我toJavaRDD
在代码中只调用了一次。
java - Spark 1.5.1、Cassandra 连接器 1.5.0-M2、Cassandra 2.1、Scala 2.10、NoSuchMethodError 番石榴依赖
Spark 环境的新手(对 Maven 来说也很新),所以我正在努力解决如何正确发送我需要的依赖项。
看起来 Spark 1.5.1 有一个它尝试使用的 guava-14.0.1 依赖项,并且 isPrimitive 是在 15+ 中添加的。确保我的 uber-jar 获胜的正确方法是什么?我已经尝试spark.executor.extraClassPath
在我的 spark-defaults.conf 中无济于事。
复制到这个[问题]:Spark 1.5.1 + Scala 2.10 + Kafka + Cassandra = Java.lang.NoSuchMethodError: but for Maven 本质上(还没有代表发表评论)
将我的依赖项剥离到这个:
使用以下所有依赖项为我的 JAR 着色:
这是我跑步时的惊人爆炸
./spark-submit --master local --class <my main class> <my shaded jar>
scala - scala.ScalaReflectionException:不是一个术语
我在 Spark 中有以下代码:
在哪里
在哪里:
saveToCassandra
期望对象集合并Seq[Any]
用作返回类型以包含两者Seq[A]
并以异常Seq[B]
中断-不是一个术语。这种行为的原因可能是什么?saveToCassandra
scala.ScalaReflectionException: <none>
apache-spark - 从 Cassandra 获取数据时出现 JavaStreamingContext 空指针异常
我想读取文件数据并检查 Cassandra 中是否存在文件行数据,如果存在则需要合并,否则将新插入到 C*。文件数据只包含名称,json格式的地址,在Cassandra学生表中以UUID为主键,名称上有二级索引
将数据合并到 cassandra 后,我想将新的 UUID 或现有的 UUID 发送到 KAfka。
当我在 mesos 集群上的本地或单台机器上运行时(保持线 sparkConf.setMaster("local[4]");) 这个程序可以工作但是当我提交给带有 4 个从属的 mesos master 时(注释行 //sparkConf.setMaster(" local[4]"); 在集群上)在 javastreaming 上下文中从 Cassandra 选择数据时存在空指针
我将流上下文设为静态,因为它在文件 dstream 的映射转换中被访问时引发了序列化异常。
这种方法有什么问题吗?是因为我正在尝试使用 DStream 地图转换构建 Cassandra RDD,这会导致问题吗?
异常堆栈跟踪::
apache-spark - 基于 cassandra 表分区键将数据保存在 spark 中
从 Cassandra 表加载数据时,spark 分区表示具有相同分区键的所有行。但是,当我使用相同的分区键在 spark 中创建数据并使用 .repartitionByCassandraReplica(..) 方法对新的 RDD 重新分区时,它最终会出现在不同的 spark 分区中吗?如何使用 Spark-Cassandra 连接器定义的分区方案在 Spark 中实现一致的分区?
下载我测试的 CQL 和 Spark 作业代码的链接
- .CQL 与键空间和表模式。
- Spark 作业和其他类。
版本和其他信息
- 火花:1.3
- 卡桑德拉:2.1
- 连接器:1.3.1
- Spark 节点 (5) 和 Cass* 集群节点 (4) 在不同的数据中心运行
代码提取。使用上面的链接下载代码以获取更多详细信息
第 1 步:将数据加载到 8 个 spark 分区中
第 2 步:将数据重新分区为 8 个分区
第 3 步:打印两个 rdds 的分区 id 和值
第 4 步:在分区 1 上打印的结果快照。两个 Rdd 不同,但期望相同
加载 Rdd 值