标签: datastax

使用 datastax java 驱动程序为 where in 子句绑定数据

我知道有人问过这个问题(http://www.datastax.com/support-forums/topic/java-driver-cql-3-bound-statements-in-clause#post-13114在 IN 中收集的准备好的语句Datastax Cassandra CQL 驱动程序中的子句

但是,我仍然不知道如何绑定数据。例如,我的 prepareStatement 是

select * from cf where key in (?)
Run Code Online (Sandbox Code Playgroud)

我想要的是绑定数据,cql 看起来像

select * from cf where key in ('key1', 'key2')
Run Code Online (Sandbox Code Playgroud)

现在我有一个 boundStatement。

当我使用 boundStatment.bind() api 时。我试着绑定?但是,对于列表或数组,它说:

列值为 varchar 类型,不能设置为列表

好的,我设置了一个字符串并像这样使用 boundStatement.bind:

boundStatement.bind("'key1','key2'");
Run Code Online (Sandbox Code Playgroud)

没有例外,但结果集是空的。为什么?我认为是因为驱动程序将其解析为

select * from cf where key in (''key1', 'key2'')
Run Code Online (Sandbox Code Playgroud)

(注意一个多余的引号,因为它认为所有的“'key1'和'key2'”都是一个字符串)。

所以,我知道 datastax 在条款中有支持。但我找不到一些例子..

任何人都可以帮助我吗?谢谢!

cassandra datastax-java-driver datastax

0
推荐指数
1
解决办法
1442
查看次数

Cassandra - Nodetool 状态显示“拥有为?”

Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving

--  Address       Load       Tokens       Owns    Host ID                               Rack
UN  10.30.27.172  202.52 KiB  1            ?       2300ea95-9114-4c03-819e-2c738de50824  rack1
UN  10.30.27.173  205.97 KiB  1            ?       d35063fe-2e81-4ab0-95ec-7024c9606b51  rack1
UN  10.30.27.171  222.02 KiB  1            ?       0f96a91b-77fb-4d49-ae87-ad9f61facb6b  rack1

Note: Non-system keyspaces don't have the same replication settings, effective ownership information is meaningless
Run Code Online (Sandbox Code Playgroud)

我创建了一个示例键空间和它下面的一些表。我可以看到其他节点上的记录。为什么拥有显示“?”,数据如何在集群上拆分。

cassandra datastax

0
推荐指数
1
解决办法
2502
查看次数

Spark 重新分区未按预期工作

我使用的是spark-sql 2.3.1,我设置

spark.sql.shuffle.partitions=40 
Run Code Online (Sandbox Code Playgroud)

在我的代码中'

val partitioned_df =  vals_df.repartition(col("model_id"),col("fiscal_year"),col("fiscal_quarter"))
Run Code Online (Sandbox Code Playgroud)

当我说

println(" Number of partitions : " + partitioned_df.rdd.getNumPartitions)
Run Code Online (Sandbox Code Playgroud)

它给出 40 作为输出,事实上重新分区后理想情况下计数应该在 400 左右,为什么重新分区在这里不起作用?我在这里做错了什么?如何修复它?

datastax apache-spark parquet apache-spark-sql

-1
推荐指数
1
解决办法
9032
查看次数

Cassandra被打破了还是我犯了一个大错?

我和Cassandra工作了很多,感觉我多年来已经从数据库中拿出了足够的BS.只是想知道为什么这不适用于数据存储java驱动程序的Apache Cassandra 2.1.0(或2.0.8)w/2.1.1.看起来这应该是有用的.

public class BS {

    public static void main(String [] args) {
           Cluster cluster = Cluster.builder().addContactPoint("192.168.1.6").build();
           Metadata metadata = cluster.getMetadata();
           System.out.printf("Connected to cluster: %s\n", metadata.getClusterName());
           Session session = cluster.connect();

           session.execute("CREATE KEYSPACE IF NOT EXISTS fook WITH replication= {'class':'SimpleStrategy', 'replication_factor':1 }");
           session.execute("CREATE TABLE IF NOT EXISTS fook.dooftbl (id bigint PRIMARY KEY, doof text, ownerid bigint)");

           long id = new Random().nextLong();
           long ownerid = new Random().nextLong();
           String doof = "broken db";

           String load = "INSERT INTO fook.dooftbl (id,doof,ownerid) VALUES (?,?,?)"; …
Run Code Online (Sandbox Code Playgroud)

java cassandra nosql datastax

-3
推荐指数
1
解决办法
1203
查看次数