从邮件列表中找到了解决方案。可以使用JdbcRDD完成此操作。我需要获取MS Sql Server
JDBC驱动程序jar并将其添加到项目的lib中。我想使用集成安全性,因此需要将sqljdbc_auth.dll(在同一下载中提供)放在java.library.path可以看到的位置。然后,代码如下所示:
val rdd = new JdbcRDD[Email](sc, () => {DriverManager.getConnection( "jdbc:sqlserver://omnimirror;databaseName=moneycorp;integratedSecurity=true;")}, "SELECt * FROM TABLE_NAME Where ? < X and X < ?", 1, 100000, 1000, (r:ResultSet) => { SomeClass(r.getString("Col1"), r.getString("Col2"), r.getString("Col3")) } )这给出了SomeClass的Rdd。第二,第三和第四个参数是必需的,分别用于上下限和分区数。换句话说,该源数据需要很长一段时间才能进行分区才能正常工作。



