小编dto*_*nay的帖子

分布式缓存和Tachyon有什么区别?

分布式缓存是一种存储常见请求并支持快速检索的方法.

Tachyon是一个以内存为中心的分布式存储文件系统,可避免进入磁盘以加载经常读取的数据集.

这两者有什么不同?

distributed-cache distributed-caching apache-spark alluxio

4
推荐指数
2
解决办法
2440
查看次数

用serde_json编码迭代器的惯用方式是什么?

我想drain()一个vec鲁斯特和编码结果作为一个JSON字符串。什么是最好的惯用方法?

#![feature(custom_derive, plugin)]
#![plugin(serde_macros)]

extern crate serde;
extern crate serde_json;

#[derive(Serialize, Deserialize, Debug)]
struct Point {
    x: i32,
    y: i32,
}

impl Point {
    pub fn new(x: i32, y: i32) -> Point {
        Point {
            x: x,
            y: y
        }
    }
}

fn main() {
    let mut points = vec![Point::new(1,2), Point::new(-2,-1), Point::new(0, 0)];
    let mut drain = points.drain(..);

    println!("{}", serde_json::to_string(&drain).unwrap());
}
Run Code Online (Sandbox Code Playgroud)

json encode rust serde

4
推荐指数
1
解决办法
752
查看次数

如何使用Hive(get_json_object)或json serde查询结构体数组

我正在尝试查询HDFS上存储的以下JSON示例文件

{
    "tag1": "1.0",
    "tag2": "blah",
    "tag3": "blahblah",
    "tag4": {
        "tag4_1": [{
                "tag4_1_1": [{
                        "tag4_1_1_1": {
                            "Addr": {
                                "Addr1": "blah",
                                "City": "City",
                                "StateProvCd": "NY",
                                "PostalCode": "99999"
                            }
                        }
                        "tag4_1_1_1": {
                            "Addr": {
                                "Addr1": "blah2",
                                "City": "City2",
                                "StateProvCd": "NY",
                                "PostalCode": "99999"
                            }
                        }
                    }
                ]
            }
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

我使用以下内容在数据上创建了一个外部表

CREATE  EXTERNAL TABLE DB.hv_table
(
  tag1 string
, tag2 string
, tag3 string
, tag4 struct<tag4_1:ARRAY<struct<tag4_1_1:ARRAY<struct<tag4_1_1_1:struct<Addr
                Addr1:string
                , City:string
                , StateProvCd:string
                , PostalCode:string>>>>>>
)
ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe' 
LOCATION 'HDFS/location';
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想查询数据,以便其返回给我: …

json hive hql hive-serde

4
推荐指数
1
解决办法
2万
查看次数

使用 serde_json 反序列化 JSON 根数组

根据 JSON 规范,JSON 文档的根可以是对象,也可以是数组。第一种情况很容易通过serde_json使用反序列化struct

#[derive(Deserialize)]
struct Person {
    first_name: String,
    last_name: String,
}

fn main() {
    let s = r#"[{"first_name": "John", "last_name": "Doe"}]"#;

    // this will break because we have a top-level array
    let p: Person = serde_json::from_str(s).unwrap();
    println!("Name: {} {}", p.first_name, p.last_name);
}
Run Code Online (Sandbox Code Playgroud)

但是我找不到任何有关如何反序列化(未命名)数组的文档struct

json rust serde

4
推荐指数
1
解决办法
3695
查看次数

获取整数的基本输入

我很惊讶我似乎无法浏览rust的文档以找到描述io的任何情况,有人可以向我解释如何使用基本的io来获取用户输入说,一个整数?也许在哪里可以找到那些被诅咒的文件中的io细节?谢谢

rust rust-obsolete

3
推荐指数
1
解决办法
1779
查看次数

如何使用 cxx 包调用 C++ 构造函数?

我发现了这个问题,但它已经有3年历史了,从那时起,板条箱之类的东西cxx就出现了。现在是否可以从 Rust 构造一个 C++ 对象,或者我仍然需要创建一个垫片?

c++ ffi rust

3
推荐指数
1
解决办法
1032
查看次数

Clap 无法解析 YAML 文件:未能将 YAML String("1") 值转换为字符串

我使用 YAML 文件来定义我的命令行界面。我使用 Clap 的load_yaml!宏解析文件,一段时间后效果很好:

#[macro_use]
extern crate clap;
use clap::{App, ArgMatches};

fn main() {
    let yml = load_yaml!("cl_arguments.yml");
    let matches = App::from_yaml(yml).get_matches();
    # some code goes here
}
Run Code Online (Sandbox Code Playgroud)

没有我对相关代码进行任何更改,这停止工作,我收到以下错误:

#[macro_use]
extern crate clap;
use clap::{App, ArgMatches};

fn main() {
    let yml = load_yaml!("cl_arguments.yml");
    let matches = App::from_yaml(yml).get_matches();
    # some code goes here
}
Run Code Online (Sandbox Code Playgroud)

我不确定这是否应该归咎于更新。我更新了 Rust 并删除了 Cargo.lock 以排除不兼容问题,但这并没有帮助。

这是产生错误的 YAML 文件的最小版本:

name: "tool"
version: "0.1"
about: "description"
author: "m00am"

subcommands:
  - subcommand1:
      args:
        - path:
            index: "1" …
Run Code Online (Sandbox Code Playgroud)

rust serde clap

2
推荐指数
1
解决办法
914
查看次数

如何让cargo-expand在宏内扩展宏

我正在学习 Rust,并尝试在默认的 Hello, World 程序上使用 Cargo-Expand。据我了解,它应该扩展所有宏,但是当我使用它时,它会留下另一个宏生成的宏。

#![feature(prelude_import)]
#[prelude_import]
use std::prelude::rust_2021::*;
#[macro_use]
extern crate std;
fn main() {
    {
        ::std::io::_print(format_args!("Hello, World\n"));
    };
}
Run Code Online (Sandbox Code Playgroud)

据我了解, 的输出cargo expand应该扩展所有内容,所以我有点困惑。我尝试谷歌搜索并寻找答案,但我读到的所有内容都显示输出中没有宏。

这到底对不对?

rust rust-cargo

2
推荐指数
1
解决办法
208
查看次数

Alluxio有/无HDFS

我有一个HDFS集群作为底层存储分布式文件系统,但我刚刚读到了关于alluxio的快速而灵活的内容.所以,我的问题是:我应该将Alluxio与HDFS一起使用,还是Alluxio可以替代HDFS?(我在他们的网站上看到,存储文件系统下的共享存储可以是网络文件系统(NFS).所以,我认为不需要HDFS.如果我犯了错误,请纠正我).

在哪种模式下性能更好:使用Alluxio或Alluxio stanalone的HDFS(我的意思是单独使用的术语是在群集中单独使用而不是在本地使用).

hadoop hdfs distributed-filesystem alluxio

1
推荐指数
1
解决办法
384
查看次数