当前位置: 首页 > 知识库问答 >
问题:

当查询完整的cassandra表时,Spark Job只会停止

仲孙兴平
2023-03-14

我在一个scala程序中做这件事。当我使用方法1时,spark job神秘地永远停留在12阶段中的第10阶段。在日志和火花作业页面验证。当我使用第二种方法时,它只是告诉我不存在这样的表:

未知异常:org.apache.spark.sql.analysisException:找不到表或视图:keyspace1.table1;1号线15号;‘项目[*]+-'unresolvedrelationkeyspace1table1

有趣的是,我在集群上的spark shell中测试了这两种方法,它们都工作得很好。我的程序使用方法1完成了许多其他查询,它们都工作得很好,关键的区别在于,在每个查询中,主分区键总是有一个条件,而不是在这个查询中(对于这个特定的表也是如此)。

CREATE TABLE keyspace1.table1 (
    userid text,
    stat_type text,
    event_time bigint,
    stat_value double,
    PRIMARY KEY (userid, stat_type)) 
WITH CLUSTERING ORDER BY (stat_type ASC)

任何对问题的可靠诊断或解决办法都将非常感谢

共有1个答案

严景焕
2023-03-14

当您在cassandra中执行select*而没有where子句时,实际上是在执行一个完整的查询。这不是cassandra中的预期用例(也许除了偷看数据之外)。为了好玩,尝试用select*from keyspace.table limit 10替换,看看它是否有效,它可能...

不管怎样,我的直觉说你的问题不是火花,而是卡桑德拉。如果您有cassandra度量的可见性,请查找范围查询延迟。

现在,如果上面的代码已经完成--方法1冻结而方法2没有冻结的原因是方法1包含一个操作(collect),而方法2不涉及任何火花操作,只是模式推断。如果您添加到方法2df.collect,您将面临与cassandra相同的问题

 类似资料:
  • 问题内容: 我在使用VBA执行SQL查询并将结果复制到Excel工作表时遇到问题。 子执行时,它仅复制256的倍数的行(因此,只有256、512、768等行是填充到Excel中的行)。我从数据库中复制任何其他字段都没有问题。另外,当我在MySQL中运行相同的查询时,它也可以正常工作。对于SQL和VBA来说都是相当新的东西,我看不到任何原因导致此特定字段引起麻烦。我唯一能想到的是它的内容是一个始终以

  • 要调试 Oracle 查询,在工具栏点击 调试 来启动 Oracle 调试器。如果查询有输入参数,输入参数。

  • 表单查看让你以表单查看、更新或删除数据,显示当前的记录:字段名及其值。表单的弹出菜单提供以下额外的功能:设置字段值为 Null 或空白字符串,使用当前字段值为筛选,设置表单查看格式,及更多。 导览栏让你快速地切换记录、插入、更新或删除记录。相关主题: 排序、查找或替换记录 筛选记录 操作原始数据 设置表网格格式

  • Navicat 为视觉化地创建查询提供一个有用的工具,称为 查询创建工具。它让你不需要 SQL 知识就能创建及编辑查询。数据库对象显示在左边窗格。而在右边窗格,它分为两部份:上面的 图表设计 窗格,和下面的 语法 窗格。 注意:视觉化创建工具只支持 SELECT 语句。请使用查询编辑器来创建复杂的查询。 要添加表或视图到查询,简单地从左边窗格拖曳它到图表设计窗格或双击它。要在查询包含字段,在图表设

  • 我正在尝试通过以下步骤通过 spark-1.6.0 和 scala-2.11.7 从 Cassandra 2.0.17 表中获取值 已启动cassandra--服务cassandr启动 已启动spark--sbin/start all。sh 规定的火花标度-箱/火花壳-罐子火花-盒-连接器_2.10-1.5.0-M1.jar 在 Scala 中执行了这些命令 直到现在一切都很好,但当我执行- 它给

  • 我想查询表的完整分区。我的复合分区键由组成和是字符串,是整数。 我需要将hour_of_timestamp字段添加到我的分区键,因为在摄取数据时存在热点。 现在我想知道查询数据的完整分区的最有效方法是什么?根据这个博客,使用会在协调器节点上造成大量开销。 使用TOKEN函数并用两个TOKEN查询分区是否更好?如<代码> SELECT * from my table WHERE TOKEN(id,d