问题标签 [pycassa]

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.

0 投票
2 回答
2256 浏览

python - 如何使用 pyspark 在 cassandra 数据上创建 RDD 对象

我正在使用 cassandra 2.0.3,我想使用 pyspark(Apache Spark Python API)从 cassandra 数据创建一个 RDD 对象。

请注意:我不想导入 CQL,然后从 pyspark API 进行 CQL 查询,而是想创建一个 RDD,我想在其上进行一些转换。

我知道这可以在 Scala 中完成,但我无法从 pyspark 中找出如何做到这一点。

如果有人可以指导我,我真的很感激。

0 投票
1 回答
411 浏览

python - 无法使用 pycassa 读取列族

我刚开始使用 pycassa,所以如果这是一个愚蠢的问题,我先道歉。

我有一个具有以下架构的列族:

当我尝试使用有效密钥执行 get() 时(在 cassandra-cli 中工作正常),我得到:

这是我发现的更多信息:

使用 cassandra-cli 时,我可以看到数据:

% cassandra-cli -h 10.249.238.131

由于不清楚是什么导致了异常,我决定在 columnfamily.py 中的“return self._name_unpacker(b)”行之前添加一个打印,我看到:

我不知道列名周围的额外字符来自哪里。但这让我很好奇,所以我在 columnfamily.py 的 _cosc_to_dict 中添加了另一个打印,我看到:

我是否正确假设列名周围的额外字符是导致“ValueError:字节不是 16 字符字符串”异常的原因?

此外,如果我尝试使用列名并选择它,我会得到:

还有什么想法吗?

谢谢,

0 投票
1 回答
359 浏览

python - 为 100 万行键处理 pycassa multiget 的有效方法是什么

我是卡桑德拉的新手。

现在我已经设法让我的代码在相对较小的数据集上为我的问题场景工作。

但是,当我尝试在 100 万行键上执行 multiget 时,它会失败并显示一条消息“重试 6 次。上次失败是超时:超时”。

例如:colfam.multiget([rowkey1,............,rowkey_Million])

基本上我要查询的列族有 100 万条记录,每条记录有 28 列。

在这里,我在单个 ubuntu 虚拟机上运行 2 节点 cassandra 集群,系统配置为

内存:3GB 处理器:1CPU

那么我如何有效地处理这么多行键上的 multiget,然后将相同的批量插入到另一个 cassandra 列族中?

提前致谢 :) :)

0 投票
1 回答
272 浏览

python - 使用 cassandra-cli 看到 pycassa 创建列族异常

因为我是 Cassandra 的新手。我想使用 pycassa API 创建一个列族。我使用以下代码创建了一个列族:

python脚本运行良好,没有任何异常。但是当我使用 cassandra-cli 检查这个列族时。我得到了以下异常:

我不知道为什么我会收到这个错误。有没有人有相同的工作代码。提前致谢。

0 投票
1 回答
345 浏览

indexing - 在 Cassandra 上添加二级索引索引历史数据?

如果在特定列族上我稍后在列上添加索引,它是否也会索引历史数据或添加索引后现在出现的数据。

此中,Cassandra DB 在将列更新为二级索引后何时索引数据 接受的答案说它将仅索引创建索引后插入的数据。

我尝试在列上创建带有索引的 CF。(我使用的是 Cassandra 1.0.7)

使用比较器=UTF8Type 和 column_metadata=[{column_name: full_name, validation_class: UTF8Type}, {column_name:birth_date, validation_class: LongType, index_type: KEYS}, {column_name: state, validation_class: UTF8Type, index_type: KEYS}] 创建列族用户;

添加了一些数据,然后做了

通过删除索引 users.birth_date 删除索引,然后通过更新 CF 将其添加回来

使用比较器 = UTF8Type 和 column_metadata = [{column_name:full_name,validation_class:UTF8Type},{column_name:birth_date,validation_class:LongType,index_type:KEYS},{column_name:state,validation_class:UTF8Type,index_type:KEYS}] 更新列族用户;

然后再次添加一些数据

但是当我查询birth_data 时,我也得到了历史数据吗?

有人可以解决我对此的困惑吗?是否有两种方法可以创建索引,一种使用历史数据,一种没有?

0 投票
1 回答
706 浏览

cassandra - 用于插入和读取流数据的理想 Cassandra 参数/设置

我将流数据插入到 2 个单独的键空间中,数据插入到第一个键空间中的 2 个列族(标准)和第二个键空间中的 3 个列族(2 个标准和 1 个计数器)中。

这些列族的数据插入率得到了很好的控制,并且在纯写入的情况下工作得很好[60% 的 CPU 利用率和大约 8-10 的 CPU 负载因子]。接下来,我尝试通过 Pycassa API 从这些列族中连续读取数据,同时写入并行发生,我注意到写入性能严重下降。

建议从 2 个键空间进行并行写入 + 读取的系统设置是什么?目前,数据目录位于单个物理驱动器上,每个节点上都有 RAID10。

内存:8GB

堆大小:4GB

四核 Intel Xeon 处理器 @3.00 GHz

并发写入 = 并发读取 = 16(在 cassandra.yaml 文件中)

数据模型

Keyspace1:我在一个宽列中插入带有时间戳 (T) 作为列名的时间序列数据,该列在一行中存储 24 小时的数据。

CF1:

行键1

行键2

CF2(宽列系列):

RowKey1 (T1, V1) (T2, V3) (T4, V4) ......

RowKey2 (T1, V1) (T3, V3) .....

键空间2

CF1:

行键1

行键2

CF2(宽列系列):

RowKey1 (T1, V1) (T2, V3) (T4, V4) ......

RowKey2 (T1, V1) (T3, V3) .....

CF3(反柱系列):

计算存储在 CF2 中的每个事件的发生次数。

数据从 Keyspace 1 和 2 连续读取,仅 CF2(宽列族)。重申一下,读取和写入是并行发生的。使用 multiget 查询的数据量从 1 个增加到 8 个行键,并且重复此过程。

0 投票
1 回答
792 浏览

cassandra - 使用 COMPACT STORAGE 更改表

我从使用 CQL3 创建的 pycassa 读取表格时遇到问题。

所以跟着这篇文章 阅读 Cassandra 1.2 table with pycassa

现在试图改变我的桌子

ALTER TABLE tweets with COMPACT STORAGE ;

但是得到一个错误。

错误请求:第 1:32 行在“存储”处缺少“=”

0 投票
2 回答
414 浏览

python - 随机和有序分区器中的 get_range

以下语句如何在处理大量行(例如 5 亿行)时帮助提高程序效率。

随机分区器:

有序分区:

get_range此外,在使用列族超过一百万行的有序分区器时,一次可以处理多少行。

谢谢

0 投票
2 回答
1620 浏览

python - 在 pycassa 中找不到 Cassandra 列族

我正在尝试连接到 Cassandra 以进行批量插入。但是,当我尝试连接时,出现错误。

我正在使用的代码:

然而,这在最后一行失败了:

列族肯定存在:

而且我认为这不是表名上的简单错字,因为我已经检查了十几次,但也因为这个:

为什么会这样{}

如果重要的话:

  • 表/列族是使用 CQL 创建的。
  • 该表目前是空的。
  • 该表大致是使用以下方法创建的:

    /li>
0 投票
3 回答
1780 浏览

copy - 如何将 cassandra 数据从一个集群复制到另一个集群

我有 2 个 cassandra 集群,位于不同的数据中心(请注意,这些是 2 个不同的集群,而不是具有 multidc 的单个集群),并且两个集群具有相同的键空间和列族模型。我希望以最有效的方式将列族 C 的数据从集群 A 复制到集群 B。其他一些 ColumnFamily 我可以使用 get 和 put 操作进行复制,因为它是一个时间序列并且键是顺序的。但是这个其他列族 C,我可以复制。我正在使用节俭和 pycassa。我已经尝试了 CQL COPY 命令,但不幸的是 CF 太大了,我得到了一个 rpc_timeout。我怎样才能做到这一点?