Skip to content

Commit 8c9d559

Browse files
committed
Improved example [skip ci]
1 parent 0d95dc1 commit 8c9d559

File tree

2 files changed

+10
-16
lines changed

2 files changed

+10
-16
lines changed

examples/disco/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ edition = "2021"
55
publish = false
66

77
[dependencies]
8-
csv = "1"
98
discorec = "0.2"
109
pgvector = { path = "../..", features = ["postgres"] }
1110
postgres = "0.19"

examples/disco/src/main.rs

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
use csv::ReaderBuilder;
21
use discorec::{Dataset, RecommenderBuilder};
32
use pgvector::Vector;
43
use postgres::{Client, NoTls};
54
use std::collections::HashMap;
65
use std::error::Error;
76
use std::fs::File;
8-
use std::io::Read;
7+
use std::io::{BufRead, BufReader, Read};
98
use std::path::Path;
109

1110
fn main() -> Result<(), Box<dyn Error>> {
@@ -73,27 +72,23 @@ fn load_movielens(path: &Path) -> Result<Dataset<i32, String>, Box<dyn Error>> {
7372
let mut buf = Vec::new();
7473
movies_file.read_to_end(&mut buf)?;
7574
let movies_data = String::from_utf8_lossy(&buf);
76-
let mut rdr = ReaderBuilder::new()
77-
.has_headers(false)
78-
.delimiter(b'|')
79-
.from_reader(movies_data.as_bytes());
80-
for record in rdr.records() {
81-
let row = record?;
75+
let rdr = BufReader::new(movies_data.as_bytes());
76+
for line in rdr.lines() {
77+
let line = line?;
78+
let row: Vec<_> = line.split('|').collect();
8279
movies.insert(row[0].to_string(), row[1].to_string());
8380
}
8481

8582
// read ratings and create dataset
8683
let mut data = Dataset::new();
8784
let ratings_file = File::open(path.join("u.data"))?;
88-
let mut rdr = ReaderBuilder::new()
89-
.has_headers(false)
90-
.delimiter(b'\t')
91-
.from_reader(ratings_file);
92-
for record in rdr.records() {
93-
let row = record?;
85+
let rdr = BufReader::new(ratings_file);
86+
for line in rdr.lines() {
87+
let line = line?;
88+
let row: Vec<_> = line.split('\t').collect();
9489
data.push(
9590
row[0].parse::<i32>()?,
96-
movies.get(&row[1]).unwrap().to_string(),
91+
movies.get(row[1]).unwrap().to_string(),
9792
row[2].parse()?,
9893
);
9994
}

0 commit comments

Comments
 (0)