Spark:使用map并使用SparkSql减少

时间:2017-07-18 09:23:17

标签: apache-spark-sql apache-spark-2.0 apache-spark-dataset

我不应该问这个问题而且我真的不想问,但我迷路了。我看到许多以wordcount为例的教程。但我有问题要了解如何将它与sparkSql一起使用 例如,我有以下查询

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

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

1 个答案:

答案 0 :(得分:1)

如果要计算项目出现次数,可以使用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

希望它能回答你的问题