Что ж, лучший способ - фильтровать данные, чтобы они не содержали дубликатов. Обычно это довольно просто и не требует большого количества программирования.
Например:
Предполагая, что 1-й столбец ваших данных представляет собой данные для первичного ключа, а файл не очень большой (скажем, менее 60% от вашей оперативной памяти), вы можете:
awk -F, '(!X[$1]) {X[$1]=1; print $0}' /tmp/a.csv > /tmp/b.csv
и вместо этого загрузите /tmp/b.csv.
Если файл больше, то я бы предложил что-то вроде этого:
sort /tmp/a.csv | awk -F, 'BEGIN {P="\n"} ($1 != P) {print $0; P=$1}' > /tmp/b.csv