我正在尝试对将馈送到 LucidWorks 大数据进行索引的数据进行一些预处理。LWBD 以 Sequencefile 文件的形式接受 SolrXML。我想创建一个 Pig 脚本,它将获取目录中的所有 SolrXML 文件并以格式输出它们
filename_1 => <here goes some XML>
...
filename_N => <here goes some more XML>
Pig 的本机PigStorage()
加载函数可以自动创建一个列,其中包含从中提取数据的文件的名称,理想情况下应该如下所示:
{"filename_1", "<here goes some XML>"}
...
{"filename_N", "<here goes some more XML>"}
但是,PigStorage() 也自动使用 '\n' 作为行分隔符,所以我最终得到的是一个看起来像这样的包:
{"filename_1", "<some partial XML from file 1>"}
{"filename_1", "<some more partial XML from file 1>"}
{"filename_1", "<the end of file 1>"}
...
我相信你明白了。我的问题是,如果我要将这个包写入 SequenceFile,其他应用程序将如何读取它?可以合并为
"filename_1" => "<some partial XML from file 1>
<some more partial XML from file 1>
<the end of file 1>"
,由我提供给它的应用程序的默认处理?或者我可以做一些后处理来把它变成这种格式吗?谢谢您的帮助。