Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-01-2024 07:02 AM
Can you please try it this way:
package com.example.databricks;
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;
public class DatabricksJDBCApp {
public static void main(String[] args) {
// Initialize Spark Session
SparkSession spark = SparkSession.builder()
.appName("Databricks JDBC Example")
.master("local")
.getOrCreate();
String pwd = "XXXXXXXXXXXXXXXXXXXXXXXX";
String warehouseId = "XXXXXXXXXXXXXXX";
String host = "XXXXXXXXXXXXXXXXXXX";
// JDBC URL to connect to Databricks
String url = "jdbc:databricks://" + host + ":443;" +
"transportMode=http;ssl=1;" +
"HttpPath=/sql/1.0/warehouses/" + warehouseId + ";" +
"UID=token;PWD=" + pwd;
// Use a SQL query to fetch the data
String query = "(SELECT * FROM framework_databricks.test_table3) AS temp";
// JDBC Driver Class
String driver = "com.databricks.client.jdbc.Driver";
Dataset<Row> databricksDF = spark.read()
.format("jdbc")
.option("url", url)
.option("dbtable", query) // Use SQL query as dbtable
.option("driver", driver)
.load();
// Show schema and data
databricksDF.printSchema();
System.out.println("Row Count: " + databricksDF.count());
databricksDF.show();
// Stop Spark session
spark.stop();
}
}