Spark:使用 map 和 reduce 与 SparkSql

Spark : Use map and reduce with SparkSql

我不应该问这个问题,我也不想问,但我迷路了。我看到很多使用 wordcount 作为示例的教程。但是我无法理解如何将它与 sparkSql 一起使用 例如,我有以下查询

Dataset<Row> totalItem = spark.sql(" select icode from bigmart.o_sales");

它给我数据集?现在我可以遍历 totalItem 并打印结果,但我想计算该项目出现的次数。这可以用 map 和 reduce 来完成,但我不知道该怎么做。 另外,如果有人知道 sparkSql 使用 java 我们可以将结果存储在变量中而不是使用 show(),我将非常感激

如果你想计算一个项目出现了多少次,你可以使用 sparksql 查询本身来完成,如下所示:

spark.sql("select icode,count(icode) from bigmart.o_sales group by icode")

或者您可以使用 api 如下:

val df=spark.table("bigmart.o_sales").groupBy($"icode").count.show

希望它能回答您的问题