|
| 1 | +# CommonCrawl.Parquet |
| 2 | + |
| 3 | +[English](README.md) | [中文](README.zh-CN.md) | [日本語](README.ja.md) | [Français](README.fr.md) |
| 4 | + |
| 5 | +Une bibliothèque .NET pour lire les données d'index Common Crawl stockées au format Parquet. Cette bibliothèque fournit des modèles fortement typés et un lecteur efficace pour traiter les enregistrements d'index Common Crawl. |
| 6 | + |
| 7 | +## Fonctionnalités |
| 8 | + |
| 9 | +- **Modèles fortement typés** : Mappe le schéma Parquet de Common Crawl à la classe C# `IndexTableRecord`. |
| 10 | +- **Lecture efficace** : Utilise `ParquetReader` pour lire les fichiers Parquet de manière asynchrone. |
| 11 | +- **Filtrage** : Prend en charge les prédicats pour filtrer les enregistrements lors de la lecture. |
| 12 | + |
| 13 | +## Installation |
| 14 | + |
| 15 | +Assurez-vous de disposer des dépendances nécessaires. Ce projet utilise `Parquet.Net`. |
| 16 | + |
| 17 | +## Utilisation |
| 18 | + |
| 19 | +Vous pouvez utiliser `ParquetReader.Instance` pour lire des fichiers Parquet. Le lecteur renvoie un `IAsyncEnumerable<T>`, permettant un traitement efficace de la mémoire. |
| 20 | + |
| 21 | +```csharp |
| 22 | +using CommonCrawl.Readers; |
| 23 | +using CommonCrawl.Models; |
| 24 | + |
| 25 | +// Lire à partir d'un chemin de fichier |
| 26 | +var reader = ParquetReader.Instance; |
| 27 | +string filePath = "path/to/cc-index.parquet"; |
| 28 | + |
| 29 | +await foreach (var record in reader.ReadAsAsyncEnumerable<IndexTableRecord>(filePath)) |
| 30 | +{ |
| 31 | + Console.WriteLine($"URL : {record.Url}, Date de récupération : {record.FetchTime}"); |
| 32 | +} |
| 33 | + |
| 34 | +// Lire avec un filtre (par exemple, uniquement les récupérations réussies) |
| 35 | +await foreach (var record in reader.ReadAsAsyncEnumerable<IndexTableRecord>(filePath, r => r.FetchStatus == 200)) |
| 36 | +{ |
| 37 | + Console.WriteLine($"URL valide trouvée : {record.Url}"); |
| 38 | +} |
| 39 | +``` |
| 40 | + |
| 41 | +## Modèles |
| 42 | + |
| 43 | +### IndexTableRecord |
| 44 | + |
| 45 | +Représente un enregistrement unique dans l'index Common Crawl. Les propriétés clés incluent : |
| 46 | + |
| 47 | +- `Url` : La chaîne URL complète. |
| 48 | +- `UrlSurtKey` : Clé URL SURT pour la canonicalisation. |
| 49 | +- `UrlHostName` : Nom d'hôte de l'URL. |
| 50 | +- `FetchTime` : Horodatage de la capture. |
| 51 | +- `FetchStatus` : Code d'état HTTP. |
| 52 | +- `ContentMimeType` : Type MIME du contenu. |
| 53 | +- `WarcFilename` : Emplacement du fichier WARC dans le bucket S3 de Common Crawl. |
| 54 | +- `WarcRecordOffset` & `WarcRecordLength` : Position de l'enregistrement dans le fichier WARC. |
| 55 | + |
| 56 | +Pour une liste complète des champs, reportez-vous au [code source](Models/IndexTableRecord.cs) ou au [Schéma d'index Common Crawl](https://github.com/commoncrawl/cc-index-table/blob/main/src/main/resources/schema/cc-index-schema-flat.json). |
0 commit comments