1

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

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

看看示例代码会很棒。谢谢。

4

1 回答 1

1

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

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

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

// Load a file into a Spark dataset.
// Here we load a CSV file, get the column names from
// the CSV headers, and use Spark automatic type inference.
var ds = spark.read
  .format("csv")
  .option("header","true")
  .option("inferSchema","true")
  .load("path/to/file.csv")

// Import the sparkube library (the sparkube jar must be in the classpath)
import com.activeviam.sparkube._

// Expose the dataset as a multidimensional cube.
// You can start visualizing the cube right away at http://localhost:9090/ui
// or connect from Excel with the XMLA protocol at http://localhost:9090/xmla
new Sparkube().fromDataset(ds)
  .withName("My first cube")
  .expose()
于 2018-04-24T07:40:51.970 回答