我有一组文件,每个文件都包含Marc21
二进制格式的特定记录。我想将这组文件作为RDD摄取,其中每个元素都是一个记录对象作为二进制数据。稍后,我将使用Marc
库将对象转换为Java Object
以进行进一步处理。
截至目前,我对如何阅读二进制文件感到困惑。
我见过以下功能:
binaryRecord(path: string, recordLength: int, conf)
但是,它假设它是一个具有相同长度的多个记录的文件。我的记录肯定会有不同的大小。旁边的每个都在一个单独的文件上。
有没有办法解决这个问题?我怎样才能为每个文件提供长度?唯一的方法只是计算我的文件的长度然后读取记录吗?
我看到的另一个解决方案显然是以Java格式读取记录并将其序列化为任何适合摄取的格式。
请告知。
答案 0 :(得分:0)
您是否尝试过spark中的sc.binaryFiles()?