使用Spark SQL执行OLAP函数

时间:2016-12-14 09:38:54

标签: apache-spark-sql olap hivecontext

我正在使用spark版本1.6。我想通过Spark上的sql查询执行OLAP函数,包括CUBE,ROLLUP,GROUPING SETS。我知道数据集api上可以使用多维数据集和汇总函数,但是如何通过SQL查询执行它们呢?

我需要使用HiveContext吗?我需要为此设置Hive吗?如何将数据帧保存为可以使用HiveContext执行的sql查询访问的表?

看一下示例代码会很棒。感谢。

1 个答案:

答案 0 :(得分:1)

在ActiveViam,我们还需要在Apache Spark上进行交互式OLAP查询。因此,我们制作了一个名为Sparkube的扩展,它将Spark数据集公开为多维立方体,而不移动数据。

一旦您的数据集以这种方式公开,您就可以直接访问Spark上的所有OLAP MDX功能,包括DRILLDOWNDRILLUP

例如,如何将CSV文件的内容挂载到内存中并将其作为多维立方体公开:

.data 0x100020000
dati1: .word 0xC000, 0xF000A000, 0x8000FFFF, 0x23150001, 0x0
.text
main:
sub1: move $t0, $zero
      la $t1, dati1
ciclo1: lw $t2, 0($t1)
         move $t3,$t2
         bne $t2, $zero, dopo1a
         ori $t4, $zero, 1
         beq $zero, $zero, dopo1b
dopo1a: slt $t4, $zero, $t2
dopo1b: bne $t4, $zero, dopo1c
        nor $t3, $t3, $t3
        addi $t3, $t3, 1
dopo1c: sw $t3, 32($t1)
        addi $t1, $t1, 4
        addi $t0, $t0, 1
        slti $t4, $t0, 5
        bne $t4, $zero, ciclo1
        jr $ra