我有一个非常大的文件(19M 行),需要清理数据。我使用的是 Windows 11 机器。数据正在加载到 SQL Server 19 中。我当前正在使用 Perl 脚本来删除双引号之间的所有逗号。我将在下面发布我的脚本。这需要很长时间才能运行。我觉得 powershell 会更快,但我似乎无法让它运行我需要的 REGEX。
#! /usr/bin/perl -w
use strict;
use warnings;
my $SRC = $ARGV[0];
my $DES = $ARGV[1];
open(SRC,'<',$SRC) or die $!;
open(DES,'>',$DES) or die $!;
my $n_fields = "";
while (<>) {
s/\s+$//;
if (/^\#/) { # header line
my @t = split(/,/);
$n_fields = scalar(@t); # total number of fields
} else { # actual data
my $n_commas = $_ =~s/,/,/g; # total number of commas
foreach …Run Code Online (Sandbox Code Playgroud) 我想long long在C中按四百万s 的顺序排序.通常我只是malloc()一个缓冲区用作数组并调用qsort()但是四百万*8字节是一大块连续内存.
最简单的方法是什么?为此,我对速度感到轻松.我不想使用任何库,结果将需要在Windows和Linux下的适度上网本上运行.
我有一个庞大的数据库(2.1亿行),我需要执行一些计算来提取一些统计结果.据我了解,很明显直接在这个数据库上执行计算是不明智的.
我现在要做的是将表的一部分加载到内存中(表示100万行).我不确定如何将ResultSet的整个数据块加载到内存中而不逐行迭代.
任何的想法?
前面的信息可能有助于您理解问题:我有一个数据/集和/或矩阵有257列,第257列只是一列零,用于编码.
我需要找到四到十个不同列之间的最高相关性,使用每个可能组合的单独线性模型.通过将每个线性模型的R平方值与单个列矩阵进行比较,我一直在对其进行最佳拟合.
我已经为1-3列的每个组合完成了这个任务,但是当使用如下所示的四个参数时,R无法在合理的时间内完成任务,代码运行了大约五天,而不是甚至接近完成.
下面的代码是循环内循环内的循环...等,为每个使用的添加参数添加另一个循环.目前,代码将保存矢量中每个循环的r平方值和循环数,如果它在找到的前十位中.我认为这样做可以节省一些内存,并加快速度,但是,它根本没有帮助,也没有用.
我的问题是:是否有可能在R中加快速度,或者是否有更好的语言可供使用?我将如何使用另一种语言,软件?价钱?我以前只在编码中使用了R,因为我没有做很长时间,并且是一个长镜头的amatuer.
我很感激任何建议!谢谢.
具有四个参数的示例的代码如下所示,这些参数运行时间很长
#Creating objects for loop run. Overunder is already filled.
overundermatrix <- matrix(0,nrow=length(totalsc),ncol=1)
vectfourparamovun <- c(.01,.001,.0001,.00001,.000001,.0000001,.00000001,.000000001,.0000000001,.00000000001)
vectfourindexovun <- vector("list",10)
#Main Body of Loop
options(warn=-1)
for(n in 3:256){
for(i in 1:254){
for(j in 1:254){
for(a in 1:254){
lm1 <- lm(overundermatrix~data[,n]+data[,(ifelse((n+i)>256,257,(n+i)))]+data[,(ifelse((n+i+j)>256,257,(n+i+j)))]+data[,ifelse((n+i+j+a)>256,257,(n+i+j+a))])
lm1sum <-summary(lm1)
if(lm1sum[[9]]>vectfourparamovun[1:10])
{
vectfourindexovun[[which.min(vectfourparamovun[1:10])]] <- list(c(a,j,i,n))
vectfourparamovun[which.min(vectfourparamovun[1:10])] <- lm1sum[[9]]
}
}
}
}
}
options(warn=0)
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我只想找到所有可能的组合并为其创建线性模型,但这样做很长.我不知道如何不使用循环.
我正在处理很长的名单和大树.
有时候我会发现这个错误:
surgery a;;
Characters 8-9:
surgery a;;
^
Error: This expression has type int t/1044
but an expression was expected of type 'a t/1810
# type 'a t = | Leaf of ('a -> 'a -> int)
| Node of 'a * 'a t * 'a t * ('a -> 'a -> int)
Run Code Online (Sandbox Code Playgroud)
我不确定这种错误是什么类型,但我想这是某种溢出.类型匹配正确,但在类型后面的反斜杠后面有大数字.在这种情况下,1044和1810.
这次我之前运行了一些代码surgery a.如果我杀死当前的顶级并重新开始,surgery a就会运行.
我的问题是:
1.这个错误究竟是什么?
2.何时以及如何发生?
3.为什么从新的顶层重新运行它会使它工作?
4.我该如何处理?
error-handling ocaml functional-programming overflow large-data
所以我有一个16列和大约1700万行的数据框.
我首先想ddply在数据框上做一些,然后查看不同列之间的相关性.实现这一目标的最佳和最有效的方法是什么?我目前的方法花了太长时间:
该数据帧all_df和列名A,B,C,..., ,,NOP
avB <- ddply(all_df, c(“A”), summarise, NB_av=mean(B), NB_sd=sd(B))
avC <- ddply(all_df, c(“A”), summarise, NC_av=mean(C), NC_sd=sd(C))
avD <- ddply(all_df, c(“A”), summarise, ND_av=mean(D), ND_sd=sd(D))
avE <- ddply(all_df, c(“A”), summarise, NE_av=mean(E), NE_sd=sd(E))
avF <- ddply(all_df, c(“A”), summarise, NF_av=mean(F), NF_sd=sd(F))
avG <- ddply(all_df, c(“A”), summarise, NG_av=mean(G), NG_sd=sd(G))
summary_df <- avB
summary_df <- merge(summary_df, avC, by=c(“A”))
summary_df <- merge(summary_df, avD, by=c(“A”))
summary_df <- merge(summary_df, avE, by=c(“A”))
summary_df <- merge(summary_df, …Run Code Online (Sandbox Code Playgroud) 我需要乘以两个大矩阵,X并且Y.通常X具有~500K行和~18K列,并Y具有~18K行和~18K列.X预计矩阵是稀疏的,并且矩阵Y预计是稀疏/密集的.在Scala/Apache Spark中执行此乘法的理想方法是什么?
scala sparse-matrix large-data matrix-multiplication apache-spark
我必须使用尺寸为34000x34000项的二维数组进行数学计算.
明显的问题 - CLR不可能在内存中存储如此大的数据部分.我试图使用MemoryMappedFile,但是当我试图为对象创建查看器时它也失败了:MemoryMappedFile.CreateViewAccessor().是否还有其他已存在的存储大型数组的方法?(因为我没有太多时间尝试实现自定义大数据存储)
谢谢
我有一个程序可以处理来自传感器系统的大量传感器数据.我目前正在考虑将程序的输出写入文本文件,以便我可以从程序中检查它是否正常处理.
现在我在ArrayList之前编写一些标识符,然后使用将ArrayList写入文件ArrayList.toString().
lineToWrite = identifer1 + ";" + identifier2 + ";" + ArrayList.toString()
Run Code Online (Sandbox Code Playgroud)
输出文件总共包含21行,并且ArrayLists从100个项目到400.000个项目大.使用该toString()方法使我通常无法使用任何文件编辑程序打开文件并检查它们.
我想过对ArrayList中的项进行一些小处理:
String lineToWrite = "";
String arrayListString = "\n";
for(String s : sensorLine){
arrayListString += "\t" + s + "\n";
}
lineToWrite = identifer1 + ";" + identifier2 + ";" + arrayListString;
Run Code Online (Sandbox Code Playgroud)
但似乎这对于一些足够大的ArrayLists来说是永远的.有没有人有更好/更快的方法来做这个或知道一个好的文件查看程序?
我使用了以下,没有以下问题:
作为传感器数据的一个侧面说明:我总共有230万个传感器输入.
为了扩展问题,我可能不得不补充说,它是将巨大的数组拆分成一个被证明是个问题的单个字符串的一部分.程序在数组上迭代非常缓慢,因为它只是增加了arrayListString每次传递的大小,并且这占用了大量的内存/处理能力.
至于写方法本身,我使用a BufferedWriter(),用实际方法变量的占位符:
output = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filename, toAppend), "UTF-8"));
Run Code Online (Sandbox Code Playgroud)
对于我正在使用的实际写作:
output.append(line) …Run Code Online (Sandbox Code Playgroud) 我有一个大字典:600个键,项目=大列表(约10000-20000元素).
我的目标是从dict中的每个列表中获取对,并将其合并到一个列表中.
我有:
d1 = {'key1': ['a', 'b', 'c', 'd'], 'key2': ['f', 'a']}
Run Code Online (Sandbox Code Playgroud)
预期结果:
d2 = ['a_b', 'a_c', 'a_d', 'b_c', 'b_d', 'c_d', 'a_f']
Run Code Online (Sandbox Code Playgroud)
我的代码:
d2 = []
for k, v in d1.items():
for i, j in itertools.product(v, v):
if i>j:
a = "_".join(list(set([i, j])))
d2.append(a)
Run Code Online (Sandbox Code Playgroud)
我有一个问题:在终端我的python脚本说'杀了'.
这可能是由于内存使用不当造成的.有办法解决这个问题吗?
我有以下(非常大)lazy-seq:
(def lazy-list (partition-all 100000 (take 10000000000000000000 (repeat 1))))
Run Code Online (Sandbox Code Playgroud)
我想计算其中的元素数量,为此我正在执行以下操作:
(time
(loop [ll lazy-list
c 0]
(if-not (seq (take 1 ll))
c
(recur (drop 1 ll)
(inc c)))))
Run Code Online (Sandbox Code Playgroud)
如果我运行这个,我会收到以下错误:
Execution error (OutOfMemoryError) at user/eval2043$fn (REPL:1).
Java heap space
Run Code Online (Sandbox Code Playgroud)
但如果我没有持有head任何地方,为什么我会看到这个OOM问题?
BigInteger 用于对实际溢出int范围的整数运算(2到幂32),如计算阶乘100等.
实际BigInteger存储中间值或最终值的方式如何?
正如你所看到的,当我运行它时,我遇到了内存访问错误。但是如果我将 malloc_size 更改为 100,它就可以工作。如何在不更改 malloc_size 的情况下修复它。
int malloc_size = 900000;
float* ptr = (float *)malloc(malloc_size);
for (int i = 0; i< malloc_size; i ++) {
ptr[i] = 0;
}
Run Code Online (Sandbox Code Playgroud) large-data ×13
java ×3
r ×2
apache-spark ×1
arraylist ×1
arrays ×1
bigdata ×1
c ×1
c# ×1
c++ ×1
clojure ×1
database ×1
dataframe ×1
filewriter ×1
large-files ×1
loops ×1
malloc ×1
memory ×1
memory-leaks ×1
ocaml ×1
overflow ×1
performance ×1
perl ×1
powershell ×1
python ×1
python-3.x ×1
qsort ×1
regex ×1
scala ×1
sorting ×1
windows ×1