Csv解析器-计算每个文件的头

Csv解析器-计算每个文件的头,csv,parsing,header,copy,vertica,Csv,Parsing,Header,Copy,Vertica,我在一个目录中有多个CSV文件。它们可能有不同的列组合,但我想用一个命令将它们全部复制,因为它们有很多,并且都放在同一个表中。但是FDelimitedParser只对第一个文件的头行求值,然后拒绝所有不适合的行,即大多数其他文件的所有行。我一直在使用FDelimitedParser,但其他的都可以 1-这是预期的行为,如果是,为什么 2-我想让它评估每个文件的标题,有办法吗 谢谢 (Vertica 7.2)看起来您需要flexTable来实现这一点,请参见这里有一个小的解决方法,当我需要同时加载

我在一个目录中有多个CSV文件。它们可能有不同的列组合,但我想用一个命令将它们全部复制,因为它们有很多,并且都放在同一个表中。但是FDelimitedParser只对第一个文件的头行求值,然后拒绝所有不适合的行,即大多数其他文件的所有行。我一直在使用FDelimitedParser,但其他的都可以

1-这是预期的行为,如果是,为什么

2-我想让它评估每个文件的标题,有办法吗

谢谢


(Vertica 7.2)

看起来您需要flexTable来实现这一点,请参见

这里有一个小的解决方法,当我需要同时加载一组文件时,我会使用它。这假定所有文件都具有相同的列顺序

下载并运行

导航到包含csv文件的文件夹

cd your_folder_name_with_csv_files
将所有csv文件合并到一个新文件中

cat *.csv >> new_file_name.csv

从新文件运行一个文件。如果存在文件头问题,您可以按照上的说明并运行Cygwin,从每个文件中删除第一行。

那么您有多个源,并尝试将它们全部加载到同一个目标中?你能更好地解释一下吗?我的表有一组定义好的列。文件中的列是此集合的子集,但每个文件都可以有不同的子集,并且目录中可以共存数十种不同的组合。好的,但是在数据/文件登录区域中有任何文件的目标表吗?对的每个包含数据的csv/txt文件都有标题?!对不起,我不明白关于目标桌和着陆区的问题,你能重新表述一下吗?是的,每个csv文件都有标题。您有带(col1,col2,col3)的文件*和带(col1,col2,col3)的表,还有带(col1)的文件(col1)和表。对于登录区域中的每种类型的文件,您都将有一个对应的表!这是真的吗?也许我误解了,但我认为当模式未知和/或必须向表中添加列时,会使用flex表。在我的例子中,列的超集是已知的和声明的-我的问题是一次解析多个文件,其中的列是我的表的列的不同子集。我对您输入的理解是您有flex输入数据,您可以将这样的flex输入到flex表中,否则您需要公共csv文件flex表将所有内容放入原始列中,按列名进行标记,然后您可以具体化所需内容,或者直接从flex表中访问它(可能会更慢、更大,因为它无法进行列压缩和其他优化)。不过,我认为OP需要的是使用标准表并读取列以填充CSV文件。