Hi Xiaoxiang, Sir & Madames, I use the following code to query the cube via API but I cannot use the result as a dataframe, could you suggest a way to do that because it is very important for our project.
Thanks and best regards =================================== import org.apache.spark.sql.{DataFrame, SparkSession} import org.apache.spark.sql.functions._ object APICaller { def main(args: Array[String]): Unit = { val spark = SparkSession.builder() .appName("APICaller") .master("local[*]") .getOrCreate() import spark.implicits._ val username = "namdd" val password = "eer123" val urlString = "http://localhost:7070/kylin/api/query" val project = "learn_kylin" val query = "select count(*) from HIVE_DWH_STANDARD.factuserEvent" val response: String = callAPI(urlString, username, password, project, query) // Convert response to DataFrame val df = spark.read.json(Seq(response).toDS()) // Show DataFrame df.show() // Stop Spark session spark.stop() } def callAPI(url: String, username: String, password: String, project: String, query: String): String = { val encodedAuth = java.util.Base64.getEncoder.encodeToString(s"$username:$password".getBytes) val connection = scalaj.http.Http(url) .postData(s"""{"project": "$project", "sql": "$query"}""") .header("Content-Type", "application/json") .header("Accept", "application/json") .auth(username, password) .asString if (connection.isError) throw new RuntimeException(s"Error calling API: ${connection.body}") connection.body } }