非常に大きなファイル データを読み取る複数の方法
1 はじめに
小さなディアオシ:ユウ兄さん、助けてください、助けてください!
Xiaoyu : パニックにならないでください... ちょっと待ってください...
Xiao Diaosi : 上司に非常に大きなテキスト ファイルを開くように言われましたが、開くことができません。
シャオユウ:それだけです...
シャオ・ディアオシ:それは大したことではありません、上司がすぐに開けるように言ったのです。
シャオユウ:開けなかったらどうするの?
小さな貂蝉: 開けられないの? それは不可能。
シャオユウ:開けられるから開けてもいいですよ。
シャオ・ディアオシ:開けることができたら、
6つ教えてあげるよ!
小さな貂蝉: ふふ、ユウ兄、他に選択肢はありません
シャオユウ: ほとんど信じてしまいました。
小さな貂蝉: ユウ兄さん、今回は私を信じてください。
シャオユウ:あなたは足が悪いと思います、とてもひどいです。
小さな貂蝉: 一度だけ、必ず一度だけ。
Xiaoyu : 分かった...
Xiao Diaosi : ふふ、始める時間だよ。
2. コード戦闘
2.1 開いた状態
最も一般的な方法の 1 つで、非常に簡単です:
コード例
with open('file_name.txt') as f:
# 循环迭代每一行
for line in f:
2.2 mmap
mmap は画像やビデオ ファイルなどのバイナリ ファイルを読み取るもので、これも非常に簡単です。
コード例
import mmap
with open('file_name.bin', 'r+b') as f:
mmapped_file = mmap.mmap(f.fileno(), 0)
# 对mmapped_file 关闭进行操作
mmapped_file.close()
2.3 ダッシュボード
Dask は Python の人気のあるライブラリなので、ここではあまり説明しません。主に大規模なデータ セットを扱います。大規模なデータ セットを複数の
ブロックに分割し、各ブロックに対して操作を実行するには、dask.dataframe 関数を使用します。
コードを見てみましょう。
コード例
import dask.dataframe as dd
# 读取 CSV 文件
df = dd.read_csv('file_name_data.csv')
# 对数据集进行操作
result = df.groupby('column_name').mean()
# 将结果保存到文件
result.to_csv('result.csv')
2.4 パンダ
Pandas は大きなファイルを処理するために必要なライブラリです。理解できない場合は、Xiaoyu の記事を参照してください。
開始まで 9 分、非常に簡単です。
もちろん、ここでも例を挙げます。
コード例
import pandas as pd
# 读取 CSV 文件,iterator=True 将文件分块读取
df = pd.read_csv('file_name.csv', iterator=True, chunksize=1000)
for chunk in df:
# 对每个 chunk 进行处理
2.5 ハドゥープ
ビッグデータに必要なライブラリの 1 つ: Hadoop。
これは Xiaoyu の次の方向性の 1 つでもあります (ビッグデータ アルゴリズム、このコラムはすぐにお会いします)。
ビッグデータアルゴリズムコラムでは、
ビッグデータ、ビッグデータウェアハウジング、ビッグデータアルゴリズム、データ送信アプリケーション、ビッグデータテストなどの技術を詳しく紹介します。
ここではあまりしゃべりません
次に、最後の例を少し見てみましょう。
コード例
from hdfs import InsecureClient
client = InsecureClient('http://localhost:80008')
# 读取文件
with client.read('/data/file_name.txt', encoding='utf-8') as reader:
for line in reader: # 对每一行进行处理
2.6 パイスパーク
PySpark は、大規模なデータセットを並列処理できる Python の Spark API です。
同様に、PySpark を使用して大きなデータ ファイルを読み取り、処理することもできます。
コード例:
from pyspark.sql import SparkSession
# 创建 SparkSession 对象
spark = SparkSession.builder.appName('LargeFile').getOrCreate()
# 读取 CSV 文件
df = spark.read.csv('file_name.csv', header=True, inferSchema=True)
# 对数据集进行操作
result = df.groupby('column_name').mean()
# 将结果保存到文件
result.write.csv('result.csv')
3. まとめ
これを見て、今日の共有はほぼ終了です。
現在、一部の要約と共有は、主に非常に大きなデータのテキスト ファイルを読み取ることを目的としています。
- 開いた状態で
- mmap
- パンダ
- ダッシュボード
- ハドゥープ
- パイスパーク
もちろん、他に良い方法がある場合は、コメント欄にメッセージを残すこともできます。
私は小さな魚です:
- CSDN ブログの専門家。
- アリユン専門ブロガー。
- 51CTO ブログエキスパート;
- 認定講師等51名
- 認定ゴールド面接官。
- 就職面接およびトレーニングプランナー。
- いくつかの国内主流技術コミュニティの認定エキスパートブロガー。
- さまざまな主流製品 (Alibaba Cloud など) の評価で 1 位と 2 位を受賞。
私はXiaoyuです。フォローしてください。より専門的で前置きしたテスト開発テクニックを紹介します。