2017-04-23 20 views
1

我試圖在本地docker(https://hub.docker.com/_/cassandra/)中設置和運行Cassandra 3.10。一切都很順利,直到我嘗試從一個表中選擇。SELECT錯誤Cassandra'Row'對象沒有屬性值'

這是我的錯誤,每次我運行select無論從什麼:

'Row' object has no attribute 'values' 

,我遵循的步驟:

  1. 我創建使用默認的超級用戶一個新的密鑰空間:卡桑德拉。創建keyspace test with replication = {'class':'SimpleStrategy','replication_factor' : 2};USE test;

  2. 我創建了一個新表:create table usertable (userid int primary key, usergivenname varchar, userfamilyname varchar, userprofession varchar);

  3. 插入一些數據:insert into usertable (userid, usergivenname, userfamilyname, userprofession) values (1, 'Oliver', 'Veits', 'Freelancer');

  4. 儘量選擇:select * from usertable where userid = 1;

我得到這個步驟從:https://oliverveits.wordpress.com/2016/12/08/cassandra-hello-world-example/只是複製&粘貼一些工作代碼(我生氣的語法和拼寫錯誤)

這是我的泊塢窗圖像日誌:

INFO [Native-Transport-Requests-1] 2017-04-23 19:09:12,543 MigrationManager.java:303 - Create new Keyspace: KeyspaceMetadata{name=test2, params=KeyspaceParams{durable_writes=true, replication=ReplicationParams{class=org.apache.cassandra.locator.SimpleStrategy, replication_factor=2}}, tables=[], views=[], functions=[], types=[]} 
INFO [Native-Transport-Requests-1] 2017-04-23 19:09:41,415 MigrationManager.java:343 - Create new table: [email protected][cfId=6757f460-2858-11e7-9787-6d2c86545d91,ksName=test2,cfName=usertable,flags=[COMPOUND],params=TableParams{comment=, read_repair_chance=0.0, dclocal_read_repair_chance=0.1, bloom_filter_fp_chance=0.01, crc_check_chance=1.0, gc_grace_seconds=864000, default_time_to_live=0, memtable_flush_period_in_ms=0, min_index_interval=128, max_index_interval=2048, speculative_retry=99PERCENTILE, caching={'keys' : 'ALL', 'rows_per_partition' : 'NONE'}, compaction=CompactionParams{class=org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy, options={min_threshold=4, max_threshold=32}}, [email protected]3f, extensions={}, cdc=false},comparator=comparator(),partitionColumns=[[] | [userfamilyname usergivenname userprofession]],partitionKeyColumns=[userid],clusteringColumns=[],keyValidator=org.apache.cassandra.db.marshal.Int32Type,columnMetadata=[usergivenname, userprofession, userid, userfamilyname],droppedColumns={},triggers=[],indexes=[]] 
INFO [MigrationStage:1] 2017-04-23 19:09:41,484 ColumnFamilyStore.java:406 - Initializing test2.usertable 
INFO [IndexSummaryManager:1] 2017-04-23 19:13:25,214 IndexSummaryRedistribution.java:75 - Redistributing index summaries 

非常感謝!

UPDATE

我創建了這樣的UUID列中的另一表中: 「UID UUID主鍵」。它工作時,表是空的,但一個插入後,我得到相同的錯誤

+0

嘗試'\須藤PIP安裝卡桑德拉驅動--upgrade' –

+0

嗨@AshrafulIslam,感謝,但還是同樣的問題 –

+0

的問題是在cqlsh,你Cassandra是好的。順便說一下你使用的是哪種操作系統? –

回答

2

我有同樣的問題,我使用cqlsh。你只需要重新加載。可能它是第一次或在創建模式之後發生的cqlsh錯誤。

~$ sudo docker run --name ex1 -d cassandra:latest         
9c1092938d29ec7f94bee773cc2adc0a23ff09344e32500bfeb1898466610d06 
~$ sudo docker exec -ti ex1 /bin/bash           
[email protected]:/# cqlsh 
Connected to Test Cluster at 127.0.0.1:9042. 
[cqlsh 5.0.1 | Cassandra 3.10 | CQL spec 3.4.4 | Native protocol v4] 
Use HELP for help. 
cqlsh> CREATE SCHEMA simple1 
    ... WITH replication={ 
    ... 'class': 'SimpleStrategy', 
    ... 'replication_factor':1}; 
cqlsh> use simple1; 
cqlsh:simple1> create table users(id varchar primary key, first_name varchar, last_name varchar); 
cqlsh:simple1> select * from users; 

id | first_name | last_name 
----+------------+----------- 

(0 rows) 
cqlsh:simple1> insert into users(id, first_name, last_name) values ('U100001', 'James', 'Jones'); 
cqlsh:simple1> select * from users; 
'Row' object has no attribute 'values' 
cqlsh:simple1> quit 


[email protected]:/# cqlsh  
Connected to Test Cluster at 127.0.0.1:9042. 
[cqlsh 5.0.1 | Cassandra 3.10 | CQL spec 3.4.4 | Native protocol v4] 
Use HELP for help. 
cqlsh> use simple1; 
cqlsh:simple1> select * from users; 

id  | first_name | last_name 
---------+------------+----------- 
U100001 |  James |  Jones 

(1 rows) 
+1

謝謝哈維爾!現在正在工作 –

+1

不客氣! –

+1

我得到錯誤「行」對象沒有屬性'keys''。重新加載解決了這個問題。 –

相關問題