Все, что вам нужно сделать в вашем сценарии, это создать строку запроса, которая будет выглядеть примерно так:
val query = "select ProductId, COUNT(*) AS ProductSaleCount from productsale where to_date(Date) >= "+ fromDate +" and to_date(Date) <= " + toDate + " group by ProductId"
fromDate и toDate, вы, возможно, получите от своих аргументов.
Чтобы использовать это, однако это другая проблема, и это зависит от вашей базы данных
Для улья вы можете просто зарегистрировать свой сеанс искры с помощью enableHiveSupport
val spark = SparkSession.builder().appName("My App").enableHiveSupport().config("spark.sql.warehouse.dir", warehouseLocation).getOrCreate()
val data = spark.sqlContext.sql(query)
Если данные находятся в фрейме данных, и вы хотите запросить это, вам нужно будет создать представление, а затем выполнить запрос для этого
finalDataFrame.createOrReplaceTempView("productsale")
val data = spark.sqlContext.sql(query)
Надеюсь, это поможет