我有一些cassandra数据类型为double,我需要将spark向下舍入到小数点后1位.
问题是如何从cassandra中提取它,将其转换为小数,向下舍入到1个小数点,然后写回cassandra中的表.我的舍入代码如下:
BigDecimal(number).setScale(1, BigDecimal.RoundingMode.DOWN).toDouble
Run Code Online (Sandbox Code Playgroud)
如果进入的数字是小数,但是我不知道如何在编辑之前将双精度转换为小数,这非常有用.在舍入之前,我的双倍需要除以1000000.
例如510999000在被舍入到510.9之前将是510.990
编辑: 我能够通过以下命令让它做我想做的事.
BigDecimal(((number).toDouble) / 1000000).setScale(1, BigDecimal.RoundingMode.DOWN).toDouble
Run Code Online (Sandbox Code Playgroud)
不知道这有多好但是有效.
如何在cassandra中使用CQL3创建计数器列家族?
我以前使用:CREATE COLUMNFAMILY userstats(用户名varchar PRIMARY KEY,图像计数器)WITH default_validation = counter AND comment ='User Stats';
现在,当我在CQL3中运行时,我得到:错误请求:default_validation不是CREATE COLUMNFAMILY的有效关键字参数