我需要通过Spark处理.warc文件,但我似乎无法找到一种简单明了的方法。我更喜欢使用Python而不是通过wholeTextFiles()
将整个文件读入RDD(因为整个文件将在单个节点(?)处理)因此它似乎唯一/最好的方式是通过自定义Hadoop InputFormat
与Python中的.hadoopFile()
一起使用。
然而,我找不到一个简单的方法来做到这一点。将.warc文件拆分为条目就像拆分\n\n\n
一样简单;那么如何在不编写大量额外(无用)代码的情况下实现这一点,如在线的各种“教程”所示?可以用Python完成吗?
即,如何将warc文件拆分为条目而不用wholeTextFiles
读取整个文件?
答案 0 :(得分:2)
如果分隔符为\n\n\n
,您可以使用textinputformat.record.delimiter
sc.newAPIHadoopFile(
path ,
'org.apache.hadoop.mapreduce.lib.input.TextInputFormat',
'org.apache.hadoop.io.LongWritable',
'org.apache.hadoop.io.Text',
conf={'textinputformat.record.delimiter': '\n\n\n'}
)