Apache spark 基于sparksql的渐进直方图

Apache spark 基于sparksql的渐进直方图,apache-spark,apache-spark-sql,Apache Spark,Apache Spark Sql,我编写了一个小的Scala+Spark代码,读取一个大的CSV文件并计算所有列对直方图(单独的(col1,col1),(col1,col2),(col1,col3)等直方图),并将结果逐步存储在数据库(Redis)中,供其他应用程序使用 我可以用Spark SQL做类似的事情吗? 我能够将数据放入数据框并计算直方图,但我只能得到最终结果 数据可能相当大,因此我希望其他应用程序能够在计算直方图时处理部分结果(直方图为N行,其中N是Spark到目前为止能够处理的行数) 编辑: 到目前为止我拥有的代码

我编写了一个小的Scala+Spark代码,读取一个大的CSV文件并计算所有列对直方图(单独的(col1,col1),(col1,col2),(col1,col3)等直方图),并将结果逐步存储在数据库(Redis)中,供其他应用程序使用

我可以用Spark SQL做类似的事情吗? 我能够将数据放入数据框并计算直方图,但我只能得到最终结果

数据可能相当大,因此我希望其他应用程序能够在计算直方图时处理部分结果(直方图为
N
行,其中
N
是Spark到目前为止能够处理的行数)

编辑: 到目前为止我拥有的代码示例:

val params = Map("url" -> "jdbc:vertica:someAddress", "dbtable" -> "schema.mytable")
val jdbc = sqlContext.load("jdbc", params)
val columns = jdbc.columns
val columnPairs = scala.collection.mutable.ArrayBuffer[(String, String)]()
for (i <- 0 to columns.size-1){
    for (j <- i to columns.size-1){
        columnPairs += ((columns(i), columns(j)))
    }
}
val histograms = columnPairs.map{case(first, second) => 
    enter code herejdbc.groupBy(first, second).count().collect()}
histograms.foreach(histogram => mergeToRedis(histogram))
val-params=Map(“url”->“jdbc:vertica:someAddress”,“dbtable”->“schema.mytable”)
val jdbc=sqlContext.load(“jdbc”,参数)
val columns=jdbc.columns
val columnPairs=scala.collection.mutable.ArrayBuffer[(字符串,字符串)]()
对于(i合并到图(直方图))
通过这种基于列的方式,它将完成一个列对,然后将其保存到数据库中。
我希望它是基于行的,取几行,为所有可能的对生成直方图,合并到数据库并继续下一批。

用您尝试过的操作更新您的问题!每个示例的代码您应该能够反复使用相同的文件名执行
DataFrame.save(…,SaveMode.Append)
。用您尝试过的操作更新您的问题!每个示例的代码您应该能够反复使用相同的文件名执行
DataFrame.save(…,SaveMode.Append)
。用您尝试过的操作更新您的问题!每个示例的代码您应该能够反复使用相同的文件名执行
DataFrame.save(…,SaveMode.Append)