JDBCでpreparestatementを使用しようとしています。 ResultSetオブジェクトが生成されます。私はそれをスパークのデータフレームに変換したい。java Resultsetを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()
}
}
上記のコードをSpark Dataframeから呼び出して、データフレームにデータをロードし、結果をより速く分散することができます。
私はPreparedStatement
を使用する必要があります。 TeradataのFASTEXPORTがjdbc loadで動作しないため、私はspark.jdbc.load
を使用できません。それを使用する必要がありますPreparedStatement
これを行うには?どのようにしてSpark Dataframeにロードするために、SELECTステートメントと一緒にpreparestatementを使用することができますか?