2

Python で、HDFS サーバーに保存されている複数のテキスト ファイルからデータ行を読み取る方法を見つけようとしています。各行を解析し、データの一部のみを保持する必要があるため、ファイルをローカルに保存しないことを好みます。

サーバーに接続し、特定のフォルダー内のすべてのファイルを調べ、各ファイルからすべての行を読み取り、それらに対して (この質問とは無関係に) アクションを実行する方法が必要です。

4

2 に答える 2

1

これを行う Pythonic の方法は、itertools.chain を使用することです。ただし、ファイルを反復処理してからファイル内の行を反復処理し、一度に 1 行ずつ生成する小さなユーティリティ ジェネレータ関数を作成できます。このようなもの:

def lines_in_files(connection):
    for f in # some code which fetches a files at a time from the connection
         for line in f:
             yield line

取得したファイル オブジェクトがすべてのファイル メソッドをサポートしていない場合は、実行する前にその内容を StringIO でラップしますfor line in

于 2015-11-05T19:25:10.627 に答える