【问题标题】:insert nan's instead of a float in cassandra using python3使用python3在cassandra中插入nan而不是float
【发布时间】:2016-05-20 09:35:57
【问题描述】:

我想使用 python 代码插入 nan 而不是 float 值。这是我正在尝试的,并且总是以类型转换错误结束:

example input_map <int, float> {1:0.9, 2:0.8, 3:NaN}
for key in input_map:
    if (not math.isnan(input_map[key])):
        out_values[key] = values[key]
    else:
        out_values[key] = float('nan') 

尝试了 else float(nan) | 中所有可能的组合float('NaN') |float("NaN") 等

// Insert statement to be executed:
insert into keyspace.cfamily (var1, var2, map_data) values ('value1', 'value2', {1:0.9, 2:0.8, 3:nan})

cql 错误: cassandra.InvalidRequest: code=2200 [Invalid query] message="Unable to make float from 'nan'"

C* 版本详情: cqlsh:keyspace> 显示版本 [cqlsh 5.0.1 |卡桑德拉 2.2.4 | CQL 规范 3.3.1 |原生协议 v4]

Python 版本: $python3 --版本 Python 3.4.3

感谢您的宝贵时间!

【问题讨论】:

  • 快速更新:numpy.nan 或 float('nan') 以值 nan 响应 cql 查询失败,但当我手动将其更改为 NaN 时,相同的 cql 工作正常

标签: python-3.x cassandra cqlsh


【解决方案1】:

Cassandra 的nan 语法是NaN。挂载查询时必须将python的nan替换为NaN

【讨论】:

  • 已编辑:Cassandra 的语法是 "NaN" 。挂载查询时,您必须将 python 的“nan”替换为“NaN”。
  • 欢迎来到 Stack Overflow。您可以通过单击帖子下方的编辑链接来编辑您自己的答案。可以将编辑解释或宣布为 cmets,但对答案的更新应作为实际编辑进行。
猜你喜欢
  • 2014-07-15
  • 1970-01-01
  • 2019-03-10
  • 1970-01-01
  • 2021-11-12
  • 2020-04-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-28
相关资源
最近更新 更多