【发布时间】:2021-03-01 20:35:51
【问题描述】:
我有包含数据的文件(file1_01032021、file2_02032021)和相应的信息文件(info1_01032020、info2_02032020)。 file1 属于 info1,file2 属于 info2。它们到达 hdfs 并且文件名在文件到达时记录在数据库中。在信息文件中,指向数据文件的名称。 所以 info1 有内容例如:
"blabla" : "blabla"
"dataFile" : "info1_01032020"
我创建了一个变量 r,它是该表中数据的 ResultSet,其中文件的类型是信息。 表格如下:
date | filePath | type
01032020 | info1 | information
02032020 | info2 | information
01032021 | file1 | data
02032021 | file2 | data
在 ResultSet (r) 中存储以下行:
01032020 | info1 | information
02032020 | info2 | information
对我来说,“filePath”栏很有趣。我必须为每个数据文件找到相应的信息文件名。 我需要某种迭代器通过这个 ResultSet 并查看文件并查看包含数据的文件属于哪个文件。我有以下代码:
if (r.next())
informationFile = r.getString("filePath");
但它只取最后加载的文件,不检查它属于哪个数据文件。
谁能用一些示例代码帮助我进行迭代?
【问题讨论】:
-
你需要某种循环。您需要使用
while(r.next())之类的东西来遍历结果,而不是if(r.next()),在这种情况下,您需要处理 while 循环的每次迭代。 -
附带说明,我建议将信息文件中的信息存储到数据库的列中。对指向需要加载和解析的文件的行进行迭代是非常耗费资源的。除此之外,@Brendan Lesniak 对 while 循环的看法是正确的 :)
-
@RandomCoder_01,甚至在初次阅读时都没有注意到。很好的收获。