将单个(或几个)宽行从Cassandra加载到C#的最高效的性能方法是什么?我的宽行有10.000-10.000列。主键由几个值组成,但是列键是一个字符串,列值是一个计数器(请参见下面的模式)。
CREATE TABLE real_time.grouped_feature_support (
algorithm_id int,
group_by_feature_id int,
select_feature_id int,
group_by_feature_value text,
select_feature_value text,
support counter,
PRIMARY KEY ((algorithm_id, group_by_feature_id, select_feature_id, group_by_feature_value), select_feature_value)
var table = session.GetTable<GroupedFeatureSupportDataEntry>();
var query = table.Where(x => x.CustomerAlgorithmId == customerAlgorithmId
&& x.GroupByFeatureId == groupedFeatureId
&& myGroupedFeatureValues.Contains(x.GroupByFeatureValue)
&& x.GroupByFeatureValue == groupedFeatureValue
&& x.SelectFeatureId == selectFeatureId)
.Select(x => new
{
x.GroupByFeatureValue,
x.SelectFeatureValue,
x.Support,
})
.Take(1000000);
var result = query.Execute();
如果您希望在检索大型结果集时获得最佳性能,那么就不应该使用Linq-to-cql之类的映射组件。
您可以使用驱动程序自述文件中记录的技术检索行,在您的情况下,它类似于:
var query = "SELECT * from grouped_feature_support WHERE" +
" algorithm_id = ? AND group_by_feature_id = ? " +
" AND select_feature_id = ? AND group_by_feature_value = ?";
//Prepare the query once in your application lifetime
var ps = session.Prepare(query);
//Reuse the prepared statement by binding different parameters to it
var rs = session.Execute(ps.Bind(parameters));
foreach (var row in rs)
{
//The enumerator will yield all the rows from Cassandra
//Retrieving them in the back in blocks of 5000 (determined by the pagesize).
}
//You can also use a IEnumerable<T> Linq Extensions to filter
var filteredRows = rs.Where(r => r.GetValue<long>("support") > 2);
问题内容: 我有一个很大的数据集,我必须将其转换为.csv格式,我有29列和超过一百万行。我正在使用python和pandas数据框来处理此工作。我认为,随着数据框变大,将任何行追加到它会越来越耗时。我想知道是否有更快的方法,可以共享代码中的相关代码段。 任何建议,但欢迎。 问题答案: 正如Mohit Motwani建议的最快方法是将数据收集到字典中,然后将所有内容加载到数据帧中。下面是一些速度测
我已经使用objectstream和fileoutputstream将HashMap序列化为一个文件。这是一个非常庞大的HashMap,大约有1.5亿条条目。当我从文件中读回它时,加载它需要很长时间(~40分钟)。 我使用FileOutputStream后跟ObjectOutputStream来序列化对象。然后,我使用ObjectInputStream和FileInputStream读取对象。 有
问题内容: 我有一个纯文本文件,其中可能包含数百万行,需要自定义解析,我想将其尽快加载到HBase表中(使用Hadoop或HBase Java客户端)。 我当前的解决方案基于没有Reduce部件的 MapReduce 作业。我用来读取文本文件,以便每一行都传递给类的方法。此时,将对行进行解析以形成一个对象,该对象将写入。然后,获取对象并将其插入到表中。 该解决方案产生的平均插入率为每秒1,000行
问题内容: 将包含JSON的文件加载到JSONObject的最简单方法是什么。 目前,我正在使用json-lib。 这是我所拥有的,但是会引发异常: 输出为: 问题答案: 试试这个: 这是您的sample-json.txt,应为json格式
问题内容: 我正在阅读一堆用空格或换行符与标准隔开的整数。 用Java有没有更快的方法呢? 问题答案: 用Java有没有更快的方法呢? 是。扫描仪相当慢(至少根据我的经验)。 如果您不需要验证输入,建议您将流包装在BufferedInputStream中,并使用类似/的内容。 比较一下: 使用此代码读取 17兆字节 (4233600个数字) 我的机器花了 3.3秒 。而这个片段 花了 0.7秒 。
本文向大家介绍什么是C#中的方法重载?,包括了什么是C#中的方法重载?的使用技巧和注意事项,需要的朋友参考一下 具有相同名称但参数不同的两个或两个以上方法在C#中称为方法重载。 可以通过更改参数的数量和参数的数据类型来执行C#中的方法重载。 假设您有一个输出数字乘法的函数,那么我们的重载方法将具有相同的名称,但参数数量不同- 以下是显示如何实现方法重载的示例- 示例 输出结果