It's not clear what you mean by "tried fread, but without luck". Was there a specific error? How much RAM does your laptop have?
On my laptop (with 16GB memory) the file can be read without problems and will take only 3.7GB in RAM when loaded:
import numpy as np
import datatable as dt
from datatable import f
train = dt.fread("~/datasets/avazu/train.csv")
print(train.shape)
# (40428967, 24)
sample = train[np.random.binomial(1, 0.2, size=train.nrows).astype(bool), :]
sample.to_csv("train20.csv") # produces roughly 1.25GB file
However, if for some reason your computer really can't load the original file, then I'd recommend loading it in pieces, by columns; then applying the same slice to each piece, and finally cbind-ing the result:
train1 = dt.fread("~/datasets/avazu/train.csv", columns=slice(0, 8))
smp = dt.Frame(np.random.binomial(1, 0.2, size=train1.nrows).astype(bool))
sample1 = train1[smp, :]
del train1
train2 = dt.fread("~/datasets/avazu/train.csv", columns=slice(8, 16))
sample2 = train2[smp, :]
del train2
train3 = dt.fread("~/datasets/avazu/train.csv", columns=slice(16, 24))
sample3 = train3[smp, :]
del train3
sample = dt.cbind(sample1, sample2, sample3)
sample.to_csv("train20.csv")