gpt4 book ai didi

java - 在Spark Dataset API上使用汇总和分组依据

转载 作者:行者123 更新时间:2023-12-02 21:23:15 25 4
gpt4 key购买 nike

    JavaRDD<Person> prdd = sc.textFile("c:\\fls\\people.txt").map(
new Function<String, Person>() {
public Person call(String line) throws Exception {
String[] parts = line.split(",");
Person person = new Person();
person.setName(parts[0]);
person.setAge(Integer.parseInt(parts[1].trim()));
person.setSal(Integer.parseInt(parts[2].trim()));
return person;
}
});

RDD<Person>personRDD = prdd.toRDD(prdd);
Dataset<Person> dss= sqlContext.createDataset(personRDD , Encoders.bean(Person.class));
GroupedDataset<Row, Person> dq=dss.groupBy(new Column("name"));

我必须按数据集上的名称计算年龄和薪资组的总和。
请帮助如何查询数据集?我尝试使用GroupedDataset,但不知道如何进行。
谢谢

最佳答案

您可以将JavaRDD prdd 注册为表,然后在SQL语句中使用

`DataFrame schemaPeople = sqlContext.createDataFrame(prdd,Person.class);
schemaPeople.registerTempTable(“people”);

// SQL可以在已注册为表的RDD上运行。

DataFrame青少年= sqlContext.sql(“按名称从人员分组中选择总和(年龄),总和(薪水)”

// SQL查询的结果是DataFrames,并支持所有正常的RDD操作。

阅读更多:http://spark.apache.org/docs/latest/sql-programming-guide.html#running-sql-queries-programmatically

关于java - 在Spark Dataset API上使用汇总和分组依据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36824347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com