我使用Simba Technologies Inc的JDBC驅動程序與Google雲端扳手連接。它按照預期使用Java.sql運行。當我嘗試在Spark的JDBC閱讀器中使用simba JDBC驅動程序來讀取作爲DataFrame的查詢輸出,但它輸出錯誤。Simba JDBC驅動程序適用於Cloud Spanner,用於Spark JDBC DataFrame讀取器
這裏是我的扳手錶:
UserID UserName
1 Vaijnath
2 Ganesh
3 Rahul
的元數據: 用戶ID(字符串)
用戶名(字符串)
我執行查詢爲:SELECT * FROM用戶
此查詢獲取正確的數據,當我在Java Sql中使用Simba JDBC驅動程序,但無法獲取數據當我將它用於Spark SQL的JDBC閱讀器時。
它返回數據幀作爲
+------+--------+
|UserID|UserName|
+------+--------+
|UserID|UserName|
|UserID|UserName|
|UserID|UserName|
+------+--------+
我們可以看到,它返回正確的元數據和行數,但是,行包含列名。
這裏是代碼我使用:
import java.util.Properties
import org.apache.spark.sql.{DataFrame, SparkSession}
object spannerIn {
val sparkSession =SparkSession
.builder()
.appName("Spark SQL basic example").master("local")
.config("spark.sql.warehouse.dir", "file:///tmp")
.config("spark.sql.shuffle.partitions", 1)
.getOrCreate()
val properties =new Properties()
properties.setProperty("user", "")
properties.setProperty("password", "")
properties.setProperty("driver", "com.simba.cloudspanner.core.jdbc42.CloudSpanner42Driver")
val connectionURL="jdbc:cloudspanner://localhost;Project=abc;Instance=pqr;Database=xyz;PvtKeyPath=FilePath"
val selectQuery="(select * from users)"
def main(args: Array[String]): Unit = {
val df = createJdbcDataframe()
df.show()
}
def createJdbcDataframe(): DataFrame = {
sparkSession.read.jdbc(connectionURL, selectQuery, properties)
}
}
我的問題是,我可以用星火辛巴JDBC驅動程序? 如果是,那麼我需要添加什麼額外的東西。 任何幫助讚賞。