如何从 Cassandra 的 table 中检索数据类型为 "list" 的列?
How to retrieve the column having datatype as "list" from the table of Cassandra?
我正在使用 Scala 连接 Cassandra 并在其中应用我的查询,我在 Cassandra 中创建了一个简单的 table,它有两列 row_id 和 row_values。
row_id 的数据类型为 "varchar",row_values 存储元素列表。我在 Table 中插入了一些随机值并想要检索这些值。
用于创建 table:
CREATE TABLE Matrix1(row_id VARCHAR PRIMARY KEY, row_values LIST<VARCHAR>);
用于插入 table:
INSERT INTO Matrix1(row_id, row_values) VALUES ('abcd3', ['dsf23', 'fsf1','dsdf1']);
现在我想使用 Scala 检索值并打印它们,我正在使用代码保存查询中的值
val results: ResultSet = session.execute("SELECT * FROM Matrix1 where row_id = 'abcd3'")
现在我想打印 "row_id" 和 "row_values"
var rowid: String = null
var rowval: List[String] = null
for (row <- results) {
rowid = row.getString("row_id")
rowval = row.getList("row_values")
}
使用这段代码,我得到了 "rowid" 中的值,因为它是一个字符串,但是 "rowval" 有一个错误。如何从结果集中检索列(列表类型)?
尝试将class添加到getList
方法:
row.getList("row_values", classOf[String])
快速阐述:
您指定 java class。例如,
val driverDerivedRow = MyRow(row.getString("s"),
row.getInt("i"),
row.getList("l", classOf[java.lang.Long])
.asScala.toList.map(Long.unbox)
我正在使用 Scala 连接 Cassandra 并在其中应用我的查询,我在 Cassandra 中创建了一个简单的 table,它有两列 row_id 和 row_values。 row_id 的数据类型为 "varchar",row_values 存储元素列表。我在 Table 中插入了一些随机值并想要检索这些值。 用于创建 table:
CREATE TABLE Matrix1(row_id VARCHAR PRIMARY KEY, row_values LIST<VARCHAR>);
用于插入 table:
INSERT INTO Matrix1(row_id, row_values) VALUES ('abcd3', ['dsf23', 'fsf1','dsdf1']);
现在我想使用 Scala 检索值并打印它们,我正在使用代码保存查询中的值
val results: ResultSet = session.execute("SELECT * FROM Matrix1 where row_id = 'abcd3'")
现在我想打印 "row_id" 和 "row_values"
var rowid: String = null
var rowval: List[String] = null
for (row <- results) {
rowid = row.getString("row_id")
rowval = row.getList("row_values")
}
使用这段代码,我得到了 "rowid" 中的值,因为它是一个字符串,但是 "rowval" 有一个错误。如何从结果集中检索列(列表类型)?
尝试将class添加到getList
方法:
row.getList("row_values", classOf[String])
快速阐述: 您指定 java class。例如,
val driverDerivedRow = MyRow(row.getString("s"),
row.getInt("i"),
row.getList("l", classOf[java.lang.Long])
.asScala.toList.map(Long.unbox)