在我的 Rust 项目中,我从 Mongo 加载文档并将它们反序列化为 serde_json 值:
match cursor.deserialize_current() {
Ok(d) => {
let doc = serde_json::to_value(&d).unwrap();
doc_vec.push(doc);
}
之后,我使用解码器创建了一个箭头
RecordBatch
:
let mut decoder = ReaderBuilder::new(schema.clone()).build_decoder().unwrap();
if !doc_vec.is_empty() {
decoder.serialize(&doc_vec).unwrap();
let batch = decoder.flush().unwrap().unwrap();
我的架构是:
let schema = Schema::new(vec![
Field::new("Amount", DataType::Float32, false),
Field::new(
"Country",
DataType::Dictionary(Box::new(DataType::UInt16), Box::new(DataType::Utf8)),
false,
),
]);
代码失败并显示:
called `Result::unwrap()` on an `Err` value: NotYetImplemented("Support for Dictionary(UInt16, Utf8) in JSON reader")called `Result::unwrap()` on an `Err` value: NotYetImplemented("Support for Dictionary(UInt16, Utf8) in JSON reader")
当我通过 arrow Flight 将国家/地区发送到 pyarrow 客户端时,我希望对该国家/地区进行单热编码,然后将其转换为 Pandas 数据帧。
您能指导我如何从这里继续吗?我对所有使用的技术都很陌生。