0
我正嘗試使用JDBC預處理。它導致ResultSet對象。我想將其轉換爲火花數據框。如何將java結果集轉換爲Spark數據框
object JDBCRead {
val tableName:String = "TABLENAME"
val url :String = "jdbc:teradata://TERADATA_URL/user=USERNAME,password=PWD,charset=UTF8,TYPE=FASTEXPORT,SESSIONS=10"
val selectTable:String = "SELECT * FROM " + tableName +" sample 10";
val con : Connection = DriverManager.getConnection(url);
val pstmt2: PreparedStatement = con.prepareStatement(selectTable)
import java.sql.ResultSet
val rs: ResultSet = pstmt2.executeQuery
val rsmd: ResultSetMetaData = rs.getMetaData
while(rs.next()!=null)
{
val k: Boolean = rs.next()
for(i<-1 to rsmd.getColumnCount) {
print(" " + rs.getObject(i))
}
println()
}
}
我想打電話從以上數據幀星火代碼,這樣我可以將數據加載到數據幀,並獲得滿意的結果更快分佈式。我需要使用PreparedStatement
。我無法使用spark.jdbc.load
,因爲Teradata的FASTEXPORT不支持jdbc加載。它必須與PreparedStatement
如何實現這一目標?我如何使用預處理和SELECT語句加載到Spark Dataframe中。