我正在使用 spark 1.6 版。我想通过 Spark 上的 sql 查询来执行 OLAP 函数,包括 CUBE、ROLLUP、GROUPING SETS。我知道数据框 api 上提供了多维数据集和汇总函数,但是如何通过 SQL 查询执行它们?
我需要为此使用 HiveContext 吗?我需要为此设置 Hive 吗?如何将数据框保存为可以通过使用 HiveContext 执行的 sql 查询访问的表?
看看示例代码会很棒。谢谢。
我正在使用 spark 1.6 版。我想通过 Spark 上的 sql 查询来执行 OLAP 函数,包括 CUBE、ROLLUP、GROUPING SETS。我知道数据框 api 上提供了多维数据集和汇总函数,但是如何通过 SQL 查询执行它们?
我需要为此使用 HiveContext 吗?我需要为此设置 Hive 吗?如何将数据框保存为可以通过使用 HiveContext 执行的 sql 查询访问的表?
看看示例代码会很棒。谢谢。
在 ActiveViam,我们还需要在 Apache Spark 上进行交互式 OLAP 查询。因此,我们制作了一个名为Sparkube的扩展,它将Spark 数据集公开为多维立方体,而无需移动数据。
一旦您的数据集以这种方式公开,您就可以直接在 Spark 上访问所有 OLAP MDX 函数,包括DRILLDOWN、DRILLUP
例如,您如何将 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()