Java ApacheNIFI:从csv中删除多个列

Java ApacheNIFI:从csv中删除多个列,java,csv,apache-nifi,Java,Csv,Apache Nifi,我有一个超过60列的csv。然而,我只想从最初的csv中得到32列。(我的csv有标题) 我使用了QueryRecord处理器,并添加了CSVReader和CSVRecordSetWriter。然后我添加了一个名为done的新属性,并将以下SQLstatement指定为值 选择col1、col2、col9、col18。。。。。来自FlowFile的col65 上面的语句具有我想要在输出csv中的32列的所有名称(这种情况下,col1、col2等是列的名称) 这失败了,因为我收到了以下错误。据我了

我有一个超过60列的csv。然而,我只想从最初的csv中得到32列。(我的csv有标题)

我使用了
QueryRecord
处理器,并添加了
CSVReader
CSVRecordSetWriter
。然后我添加了一个名为
done
的新属性,并将以下SQLstatement指定为值

选择col1、col2、col9、col18。。。。。来自FlowFile的col65

上面的语句具有我想要在输出csv中的32列的所有名称(这种情况下,col1、col2等是列的名称)

这失败了,因为我收到了以下错误。据我了解,这是由于超过了支撑柱的限制。因为如果我想要7-8列,这个方法是有效的

希望你能给我推荐一个处理器或nifi工作流,我可以成功地从65列中去掉32列


我试了15次,效果很好。因此,我尝试了16列,它的作品。所以我又试了15次,但都没用。错误似乎不一致。

您能分享日志中的完整错误吗?实际原因将在您从公告/错误中共享的文本之后。我不确定表名是否区分大小写,但我建议将
FLOWFILE
作为表名,以防万一

另外,如果您提前知道输入模式,则可以使用ConvertRecord并将CSVRecordSetWriter的模式设置为与输入模式类似,但只包含所需的字段名(列)。ConvertRecord不会输出输出架构中不存在的字段,这会删除这些字段并只保留所需的字段


如果您不知道模式,那么QueryRecord应该可以工作(取决于您面临的错误)

我尝试相应地编辑模式。但是似乎有一个限制,因为它在大约17列之后被认为是无效的。你能分享这个错误吗?我不知道为什么会出现这样少的列的错误,如果您尝试执行sql语句