JS
Size: a a a
JS
A
JS
ЕТ
Ю
ЕТ
Ю
ЕТ
БА
АК
disk.frame
-а занимает порядка 1.5 ч. ОЗУ расходуется вся, но ничего не виснет и не падает. Это все с backend = "data.table"
и chunk_reader = "bigreadr"
. Такой вариант вроде бы должен быть самым быстрым, дополнительно ускориться теоретически можно путем использования более скоростных SSD, разместив исходник и итоговую папку на разных дисках.TMPDIR
(например, в .Renviron
)..fst
-файлами, и примерно 200 Гб во время работы ушло под временные файлы. Из этих 200 Гб во временной папке было видно половину, и еще 100 Гб болтались непонятно где, видимо в виде скрытых файлов каких-то.backend = "LaF"
.docker run --rm -ti -p 8047:8047 -v /path/to/data:/data -v /path/to/data/out:/tmp/data apache:drillВнутри:
CREATE TABLE dfs.tmp.`/data/test.parquet` AS SELECT CAST(a AS BIGINT), CAST(b AS DOUBLE) FROM TABLE(dfs.`/data/test.csv`(type => 'text', fieldDelimiter=>',', extractHeader => true));Память не жрёт особо. Скорость надо проверять.
АК
docker run --rm -ti -p 8047:8047 -v /path/to/data:/data -v /path/to/data/out:/tmp/data apache:drillВнутри:
CREATE TABLE dfs.tmp.`/data/test.parquet` AS SELECT CAST(a AS BIGINT), CAST(b AS DOUBLE) FROM TABLE(dfs.`/data/test.csv`(type => 'text', fieldDelimiter=>',', extractHeader => true));Память не жрёт особо. Скорость надо проверять.
> head test.csv
a,b
415,0.356015454977751
463,0.367446548072621
179,0.090587628306821
526,0.36187946703285
195,0.873147209873423
938,0.450912918429822
818,0.357464616652578
118,0.321751844137907
apache drill> CREATE TABLE dfs.tmp.`/data/test.parquet` AS SELECT CAST(a AS BIGINT), CAST(b AS DOUBLE) FROM TABLE(dfs.`/data/test.csv`(type => 'text', fieldDelimiter=>',', extractHeader => true));
+----------+---------------------------+
| Fragment | Number of records written |
+----------+---------------------------+
| 0_0 | 2000000000 |
+----------+---------------------------+
1 row selected (1296.647 seconds)
RB
ЕТ
ЕТ
RB
ЕТ
A
docker run --rm -ti -p 8047:8047 -v /path/to/data:/data -v /path/to/data/out:/tmp/data apache:drillВнутри:
CREATE TABLE dfs.tmp.`/data/test.parquet` AS SELECT CAST(a AS BIGINT), CAST(b AS DOUBLE) FROM TABLE(dfs.`/data/test.csv`(type => 'text', fieldDelimiter=>',', extractHeader => true));Память не жрёт особо. Скорость надо проверять.
{100500, 1234, 999}
и разделитель между полями тоже запятая. Нормально такие вещи проходят?A
pandas
братом, точнее прародителем, является base R. dplyr
/data.table
ушли далеко вперед, причем настолько, что даже порт data.table
сейчас пилят на питоне. data.table
и обсуждавшийся выше disk.frame
ближе к питоновскому dask