1

私はsparkバージョン1.6で作業しています。Spark で SQL クエリを使用して、CUBE、ROLLUP、GROUPING SETS などの OLAP 関数を実行したいと考えています。キューブ関数とロールアップ関数がデータフレーム API で使用できることは理解していますが、SQL クエリを介してそれらを実行するにはどうすればよいですか?

これには HiveContext を使用する必要がありますか? そのために Hive をセットアップする必要がありますか? HiveContext を使用して実行される SQL クエリによってアクセスできるテーブルとしてデータフレームを永続化するにはどうすればよいですか?

サンプルコードを見ていただければ幸いです。ありがとう。

4

1 に答える 1

1

ActiveViam では、Apache Spark でインタラクティブな OLAP クエリを実行する必要もありました。そこで、データを移動せずに、Spark データセットを多次元キューブとして公開するSparkubeという拡張機能を作成しました。

データセットがこのように公開されると、 DRILLDOWNDRILLUPなど、Spark 上にあるすべての OLAP MDX 関数に直接アクセスできます。

たとえば、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 に答える