Разделение файлов с помощью DataStage (8.5)

У меня есть задание, которое успешно создает последовательный выходной файл (CSV) с несколькими сотнями миллионов строк, может ли кто-нибудь предоставить пример, где выходные данные записываются в сотню отдельных последовательных файлов, каждый с миллионом строк?

Как выглядит этап последовательного файла, как он настроен?

Это должно в конечном итоге позволить QA просматривать любой из отдельных выходных данных без специального текстового редактора, который может просматривать большие текстовые файлы.


person lojkyelo    schedule 17.06.2014    source источник
comment
Если вы действительно отчаялись, вы можете сделать специальный шаг, который передает результаты в команду split Unix. Что-то вроде split -l=1000000 должно работать в вашей ситуации.   -  person Mr. Llama    schedule 17.06.2014


Ответы (1)


На основании предложения @Mr. Из-за ламы и отсутствия предстоящих решений мы решили использовать простой скрипт, который будет выполняться в конце запланированного события DataStage.

#!/bin/bash
# usage:
# sh ./[script] [input]

# check for input:
if [ ! $# == 1 ]; then
  echo "No input file provided."
  exit
fi

# directory for output:
mkdir split

# header without content:
head -n 1 $1 > header.csv

# content without header:
tail +2 $1 > content.csv

# split content into 100000 record files:
split -l 100000 content.csv split/data_

# loop through the new split files, adding the header
# and a '.csv' extension:
for f in split/*; do cat header.csv $f > $f.csv; rm $f; done;

# remove the temporary files:
rm header.csv
rm content.csv

Сырой, но в данном случае у нас работает.

person lojkyelo    schedule 08.08.2014