09-22-2017
Whatever strategy you choose, according to your expectation, you will get an output file that is near 5 times bigger than your input file.
input file :
rows = 400k
columns = 3000
Total amount of datas =
400k x 3000 = 1,2 billions
output file :
rows = (400k -1) x ( 3000 -3 )
"-1" because of the header row
"-3" because the 3 first contains the datas you want
columns = 5 (i take into account the datas, not the formatting and "__" stuff)
Total amount of datas =
5 x (400k -1) x ( 3000 -3 ) =
5,99...billions
Indeed, since you will be repeating the datas of the first 3 column for each and every subsequent column. (so (3 + 2 ) x (3000 - 3) ) rather than having it once for all of them ( "+ 2" is because you even want to add the header and the values of the subsequent column).
So just because of your prerequisits and expectations, for sure you will have to write more data, and thus you will need the corresponding number of I/O writing, independently of the strategy you choose.
If you have a huge amount of data to write, then there is and uncompressible amount of time to do it.
Of course I/O operations are quicker to do in RAM or SSD than on a standard hard drive, but still ...
It would be cheaper to save the transposed matrix and request on it
So you will have it twice : in line and in columns ... of course it will cost you 1,2 billions of datas more.
But
1,2 billions x 2 = 2,4 billions is still more than
twice smaller than 5,9 billions of datas !
Anyway, processing such an amount of data using files is inappropriate : this is what
Database have been designed for...
My 2 cents ...
PS// The reality might even be worse since i didn't even take into account the size of the datas, just the number of them ...
Last edited by ctsgnb; 09-22-2017 at 12:18 PM..
This User Gave Thanks to ctsgnb For This Post:
10 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
Hello Can Any1 tell me the difference between the col command and the col command with the -f option.
I tried running both of them but i can't see any difference.
Please guide me. (1 Reply)
Discussion started by: rahulrathod
1 Replies
2. Ubuntu
Hello,
I have a 1.6 GB file that I would like to modify by matching some ids in col1 with the ids in col 1 of file2.txt and save the results into a 3rd file.
For example:
File 1 has 1411 rows, I ignore how many columns it has (thousands)
File 2 has 311 rows, 1 column
Would like to... (7 Replies)
Discussion started by: sogi
7 Replies
3. Shell Programming and Scripting
Hello, all!
I am struggling with a short script to read a diagonal matrix for later retrieval.
1.000 0.234 0.435 0.123 0.012 0.102 0.325 0.412 0.087 0.098
1.000 0.111 0.412 0.115 0.058 0.091 0.190 0.045 0.058
1.000 0.205 0.542 0.335 0.054 0.117 0.203 0.125
1.000 0.587 0.159 0.357... (11 Replies)
Discussion started by: yifangt
11 Replies
4. Shell Programming and Scripting
SW_dist_intr false Enable SW distribution of interrupts True
autorestart true Automatically REBOOT OS after a crash True
boottype disk N/A False
capacity_inc 1.00 ... (7 Replies)
Discussion started by: maxim42
7 Replies
5. Shell Programming and Scripting
Hi, Experts,
I have a requirement as following:
my source file:
a
a
a
b
b
c
c
c
c
I need add one more colume as following:
1 a
2 a
3 a
1 b
2 b
1 c
2 c (4 Replies)
Discussion started by: ken002
4 Replies
6. Ubuntu
Hi all,
Is there a way to convert full data matrix to linearised left data matrix?
e.g full data matrix
Bh1 Bh2 Bh3 Bh4 Bh5 Bh6 Bh7
Bh1 0 0.241058 0.236129 0.244397 0.237479 0.240767 0.245245
Bh2 0.241058 0 0.240594 0.241931 0.241975 ... (8 Replies)
Discussion started by: evoll
8 Replies
7. UNIX for Advanced & Expert Users
Hello everyone,
I am writing a script to process data from the ATP world tour.
I have a file which contains:
t=540 y=2011 r=1 p=N409
t=540 y=2011 r=2 p=N409
t=540 y=2011 r=3 p=N409
t=540 y=2011 r=4 p=N409
t=520 y=2011 r=1 p=N409
t=520 y=2011 r=2 p=N409
t=520 y=2011 r=3 p=N409
The... (4 Replies)
Discussion started by: imahmoud
4 Replies
8. Shell Programming and Scripting
Hi everyone
I am very new at awk but think that that might be the best strategy for this. I have a matrix very similar to a correlation matrix and in practical terms I need to convert it into a list containing the values from the matrix (one value per line) with the first field of the line (row... (5 Replies)
Discussion started by: stonemonkey
5 Replies
9. Shell Programming and Scripting
Hello,
I have some tab delimited data and I need to move the last col. I could hard code it,
awk '{ print $1,$NF,$2,$3,$4,etc }' infile > outfile
but it would be nice to know the syntax to print a range cols.
I know in cut you can do,
cut -f 1,4-8,11-
to print fields 1,... (8 Replies)
Discussion started by: LMHmedchem
8 Replies
10. Shell Programming and Scripting
Hi,
Please help with this.
I have several excel files (with and .xlsx format) with 10-15 columns each.
They all have the same type of data but the columns are not ordered in the same way.
Here is a 3 column example. What I want to do add the alphabet
from column 2 to column 3, provided... (9 Replies)
Discussion started by: newbie83
9 Replies
TABS(1) BSD General Commands Manual TABS(1)
NAME
tabs -- set terminal tabs
SYNOPSIS
tabs [-n | -a | -a2 | -c | -c2 | -c3 | -f | -p | -s | -u] [+m[n]] [-T type]
tabs [-T type] [+[n]] n1[,n2,...]
DESCRIPTION
The tabs utility displays a series of characters that clear the hardware terminal tab settings then initialises tab stops at specified posi-
tions, and optionally adjusts the margin.
In the first synopsis form, the tab stops set depend on the command line options used, and may be one of the predefined formats or at regular
intervals.
In the second synopsis form, tab stops are set at positions n1, n2, etc. If a position is preceded by a '+', it is relative to the previous
position set. No more than 20 positions may be specified.
If no tab stops are specified, the ``standard'' UNIX tab width of 8 is used.
The options are as follows:
-n Set a tab stop every n columns. If n is 0, the tab stops are cleared but no new ones are set.
-a Assembler format (columns 1, 10, 16, 36, 72).
-a2 Assembler format (columns 1, 10, 16, 40, 72).
-c COBOL normal format (columns 1, 8, 12, 16, 20, 55)
-c2 COBOL compact format (columns 1, 6, 10, 14, 49)
-c3 COBOL compact format (columns 1, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46, 50, 54, 58, 62, 67).
-f FORTRAN format (columns 1, 7, 11, 15, 19, 23).
-p PL/1 format (columns 1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 57, 61).
-s SNOBOL format (columns 1, 10, 55).
-u Assembler format (columns 1, 12, 20, 44).
+m[n], +[n]
Set an n character left margin, or 10 if n is omitted.
-T type
Output escape sequence for the terminal type type.
ENVIRONMENT
The LANG, LC_ALL, LC_CTYPE and TERM environment variables affect the execution of tabs as described in environ(7).
The -T option overrides the setting of the TERM environment variable. If neither TERM nor the -T option are present, tabs will fail.
EXIT STATUS
The tabs utility exits 0 on success, and >0 if an error occurs.
SEE ALSO
expand(1), stty(1), tput(1), unexpand(1), termcap(5)
STANDARDS
The tabs utility conforms to IEEE Std 1003.1-2001 (``POSIX.1'').
HISTORY
A tabs utility appeared in PWB UNIX. This implementation was introduced in FreeBSD 5.0.
BUGS
The current termcap(5) database does not define the 'ML' (set left soft margin) capability for any terminals.
BSD
May 20, 2002 BSD