2016-08-23 4 views
1

У меня есть несколько CSV-файлов в каталоге. Они могут иметь разные комбинации столбцов, но я хотел бы КОПИРОВАТЬ их всех с помощью одной команды, так как их много, и все они входят в одну и ту же таблицу. Но FDelimitedParser оценивает только строку заголовка для первого файла, а затем отклоняет все строки, которые не подходят - т.е. все строки из большинства других файлов. Я использую FDelimitedParser, но все остальное в порядке.Csv parser - Оценить заголовок для каждого файла

1 - Это ожидаемое поведение, и если да, то почему?

2 - Я хочу, чтобы он оценивал заголовки для каждого файла, есть ли способ?

Благодаря

(Vertica 7,2)

+1

Итак, у вас есть несколько источников, и вы пытаетесь загрузить их все в одной и той же цели? Не могли бы вы лучше объяснить? –

+0

Моя таблица имеет определенный набор столбцов. Столбцы в файлах являются подмножествами этого набора, но каждый файл может иметь разные подмножества, а десятки разных комбинаций могут сосуществовать в каталоге. – bezout

+0

Хорошо, но у вас есть таблицы целей для любого из файлов в области посадки данных/файлов? Верный ! И каждый файл csv/txt с данными имеет заголовки?! –

ответ

1

Похоже, вам нужен flexTable для этого, см http://vertica-howto.info/2014/07/how-to-load-csv-files-into-flex-tables/

+1

Возможно, я неправильно понял, но я думал, что гибкие таблицы используются, когда схема неизвестна и/или столбцы должны быть добавлены в таблицу. В моем случае надпись столбцов известна и объявлена ​​- моя проблема заключается в разборе нескольких файлов одновременно, из которых столбцы представляют собой разные подмножества столбцов моей таблицы. – bezout

+0

Мое понимание с вашего ввода заключается в том, что у вас есть гибкие входные данные, вы можете использовать этот гибкий вход в таблицу гибких дисков, иначе вам понадобятся общие файлы csv. – elirevach

+0

Стол Flex помещает все в необработанный столбец, помеченный именем столбца, а затем вы либо материализуетесь что вы хотите или получить к нему непосредственно из таблицы flex (вероятно, медленнее и больше, потому что не может выполнять сжатие столбцов и другую оптимизацию). Я думаю, что OP ищет, тем не менее, использовать стандартную таблицу и читать столбцы для заполнения из файлов CSV. –

0

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

Скачать и запустить Cygwin

Перейдите в папку с файлами CSV

cd your_folder_name_with_csv_files 

Объединить все файлы CSV в новый файл

cat *.csv >> new_file_name.csv 

Запуск copy statement in Vertica из нового файла. Если заголовки файлов являются проблемой, вы можете следовать инструкциям на this link и запускать Cygwin для удаления первой строки из каждого файла.

Смежные вопросы