それぞれのレコードにMarc21
バイナリ形式の特定のレコードが含まれているファイルセットがあります。私はRDDとしてファイルのセットを取り込みたいと思います。各要素はバイナリデータとしてレコードオブジェクトになります。その後、Marc
ライブラリを使用してオブジェクトをJava Object
に変換して処理します。バイナリファイルをSparkに読み込む
今のところ、私はバイナリファイルをどのように読むことができるのか困惑しています。
binaryRecord(path: string, recordLength: int, conf)
しかし、それは同じ長さの複数のレコードを持つファイルであることを前提としています
私は次の関数を見てきました。私の記録は確かに異なるサイズのものになるでしょう。各ファイルの横に別ファイルがあります。
これを回避する手段はありますか?どのように私は各ファイルのために、長さを与えることができますか?唯一の方法は、私のファイルの長さを計算し、その後、レコードを読むことですか?
私が見ている他の解決策は、Java形式のレコードを読んで、それをどんなフォーマットでも快適に取り込むことです。
お知らせください。
へのリンクです。私はHDFSなしで地元で働いています。将来私はカフカから読むことを知っています。他のものではカフカで摂取され、スパークはそれから消費されます。しかし、今はちょうどいくつかのテストをしたいです。それはHDFSなしで動作することができますか? – MaatDeamon
はい。 sc.binaryFiles( "file:/// path/to/local/file")が動作するはずです。 – user5262448
Thxはい私はそれがHadoopと互換性がなければならないと理解していた – MaatDeamon