sparkで操作するために〜20MBの圧縮ファイルが2MBあります。私の最初のアイデアはwholeTextFiles()
を使用して、filename - > contentタプルを得ることでした。これは、この種のペアリングを維持する必要があるので便利です(処理がファイルごとに行われ、各ファイルが収集されたデータの1分分を表すためです)。 I /フィルタ/等にデータをマッピングし、このファイル名を維持する必要があるときはいつでもしかし、 - >の関連付けを、コードは醜い取得すなわちwholeTextFilesを使用したスパークデータ操作
Data.map(lambda (x,y) : (x, y.changeSomehow))
データ自体ので、それぞれの含有量(効率的かつおそらくありません?)ファイルには、10kのデータ行が含まれているため、別個のRDDとして読むのが良いでしょう。しかし、(私が知る限り)rddのrddを持つことはできません。
処理を簡単にする方法はありますか?基本的に私は各ファイルの内容をrddとして使用できるので、ファイル名(および変換の代わりにリスト内包表記の使用法)を追跡することなく、rdd.map(lambda x: change(x))
を行うことができます。
もちろん、分散型アプローチを維持し、いかなる方法でもそれを抑制しないことが目標です。
処理の最後のステップは、すべてをまとめて削減することです。
詳しい背景:あなたは、通常のmap
機能(O1-> O2)を持っている場合は、そのパス
を減らすことができます。 Pythonは、Pythonが本質的に遅いので、一方ではPythonが約10倍遅くなり、jvmからpythonにデータを配送する必要があるので、もう一方の側では – Reactormonk
@Reactormonkとしたいと思います。しかし、ファイル内のすべての行を実質的にデコードするには、Pythonスクリプトを使用する必要があります。もっと正確に言えば、私はPythonでコードが見つかったAISメッセージについて話しています。回避策が分かっている場合は、 – Dimebag
https://github.com/dma-ais/AisLibに教えてください。 – Reactormonk