beer_reviews.csv
![](https://img-blog.csdnimg.cn/ae638301e0954dd4b0380c8b19b4d356.png)
package bigdata.beer;
// 导入必要的库和类
import org.apache.spark.SparkConf;
import org.apache.spark.SparkContext;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;
public class ProcessData001 {
public static void main(String[] args) {
SparkConf sparConf = new SparkConf().setMaster("local[*]").setAppName("Analysis");
JavaSparkContext sc = new JavaSparkContext(sparConf);
// 创建SparkSession对象
SparkSession spark = SparkSession.builder().config(sparConf).appName("处理数据").getOrCreate();
// 读取数据
Dataset<Row> data = spark.read().option("header", true).option("inferSchema", true).csv("datas/beer_reviews.csv");
// 创建表
data.createOrReplaceTempView("beer_reviews");
// 查询数据(环境简单测试)
Dataset<Row> result001 = spark.sql("SELECT beer_style, AVG(review_overall) AS avg_overall FROM beer_reviews GROUP BY beer_style ORDER BY avg_overall DESC");
// 显示结果(正常查询,环境无误!)
// result001.show();// 显示结果
/**
* 按照review_overall进行降序排序。
*
*/
Dataset<Row> result002 = spark.sql("SELECT * FROM beer_reviews ORDER BY review_overall DESC");
// result002.show();// 显示结果
/**
* 以下是按照"review_overall"进行降序排序,并根据"review_profilename"的字段值是否为空的Spark SQL语句。
*
* 在上述语句中,我们首先按照"review_overall"字段进行降序排序。然后,我们使用CASE语句根据"review_profilename"是否为空来进一步排序,如果为空则排在后面,否则按照"review_profilename"进行降序排序。
*/
Dataset<Row> result003 = spark.sql("SELECT *\n" +
"FROM beer_reviews\n" +
"ORDER BY review_overall DESC, CASE WHEN review_profilename IS NULL THEN 1 ELSE 0 END, review_profilename DESC\n");//按照beer_reviews降序排序
// result003.show();// 显示结果
/**
* 以下是按照"review_aroma"进行降序排序,并根据"review_profilename"的字段值是否为空的Spark SQL语句。
*
* 在上述语句中,我们首先按照"review_aroma"字段进行降序排序。然后,我们使用CASE语句根据"review_profilename"是否为空来进一步排序,如果为空则排在后面,否则按照"review_profilename"进行降序排序。
*/
Dataset<Row> result004 = spark.sql("SELECT *\n" +
"FROM beer_reviews\n" +
"ORDER BY review_aroma DESC, CASE WHEN review_profilename IS NULL THEN 1 ELSE 0 END, review_profilename DESC\n");
// result004.show();
/**
* 以下是按照"review_appearance"进行降序排序,并根据"review_profilename"的字段值是否为空的Spark SQL语句。
*
* 在上述语句中,我们首先按照"review_appearance"字段进行降序排序。然后,我们使用CASE语句根据"review_profilename"是否为空来进一步排序,如果为空则排在后面,否则按照"review_profilename"进行降序排序。
*/
Dataset<Row> result005 = spark.sql("SELECT *\n" +
"FROM beer_reviews\n" +
"ORDER BY review_appearance DESC, CASE WHEN review_profilename IS NULL THEN 1 ELSE 0 END, review_profilename DESC\n");
result005.show();
/**
* 以下是按照"review_palate"进行降序排序,并根据"review_profilename"的字段值是否为空的Spark SQL语句。
*
*
*
*
*/
Dataset<Row> result006 = spark.sql("SELECT *\n" +
"FROM beer_reviews\n" +
"ORDER BY review_palate DESC, CASE WHEN review_profilename IS NULL THEN 1 ELSE 0 END, review_profilename DESC\n");
// result006.show();
/**
* 以下是按照"review_taste"进行降序排序,并根据"review_taste"的字段值是否为空的Spark SQL语句。
*
*
*
*
*/
Dataset<Row> result007 = spark.sql("SELECT *\n" +
"FROM beer_reviews\n" +
"ORDER BY review_taste DESC, CASE WHEN review_profilename IS NULL THEN 1 ELSE 0 END, review_profilename DESC\n");
// result007.show();
/**
* 以下是按照"beer_abv"进行降序排序,并根据"review_taste"的字段值是否为空的Spark SQL语句。
*
*
*
*
*/
Dataset<Row> result008 = spark.sql("SELECT *\n" +
"FROM beer_reviews\n" +
"ORDER BY beer_abv DESC, CASE WHEN review_profilename IS NULL THEN 1 ELSE 0 END, review_profilename DESC\n");
result008.show();
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)