是否可以从Microsoft Sql Server(以及oracle,mysql等)将数据读入Spark应用程序中的rdd?或者我们是否需要创建一个内存集并将其并行化为一个RDD?使用Spark SQL从SQL Server读取数据
9
A
回答
5
从邮件列表中找到了解决方法。 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.The第二,第三和第四参数的放射性散布是必需的,对于下限和上限,和分区数。换句话说,该源数据需要长期分割才能发挥作用。
5
火花1.4.0+您现在可以使用sqlContext.read.jdbc
这会给你一个数据帧而不是行的RDD的对象。
相当于你上面贴的解决办法是
sqlContext.read.jdbc("jdbc:sqlserver://omnimirror;databaseName=moneycorp;integratedSecurity=true;", "TABLE_NAME", "id", 1, 100000, 1000, new java.util.Properties)
应该拿起桌上的模式,但是如果你想强迫它,你可以使用后的架构方法阅读sqlContext.read.schema(...insert schema here...).jdbc(...rest of the things...)
请注意,您不会在这里获得SomeClass的RDD(这在我看来更好)。相反,您会得到相关字段的DataFrame。
更多信息可以在这里找到:http://spark.apache.org/docs/latest/sql-programming-guide.html#jdbc-to-other-databases
相关问题
- 1. 从Microsoft SQL Server读取数据到R
- 2. 读取XML数据从SQL Server表
- 3. 使用ADO.NET从SQL Server获取数据
- 4. SQL使用数据读取器从数据库问题读取
- 5. 使用Python从MS SQL Server读取zlib/gzip压缩数据
- 6. 使用C#从SQL Server数据库中读取XML字符串
- 7. 用于从SQL Server读取数据的通用函数
- 8. 使用数据源读取SQL Server数据库
- 9. 使用T-SQL从SQL Server提取二进制数据
- 10. 从SQL Server Express数据库读表
- 11. php从sql数据库读取数据
- 12. SQL读取数据?
- 13. 从asp.net每隔x秒从sql server读取数据值
- 14. 如何使用BCP或Sql Server Management Studio将BLOB数据从Sql Server中取出?
- 15. 什么是读取从SQL Server使用SqlDataReader的(C#)字节数
- 16. 使用LINQ从SQL Server检索数据
- 17. 使用SQL Server读取文本文件
- 18. 如何将XML数据从SQL Server读取到PHP
- 19. 从SQL Server 2005读取UTF8(XML)数据最有效的方法
- 20. SQL Server管理对象从备份文件中读取数据
- 21. 从SQL Server获取数据库列表
- 22. 从SQL Server获取新数据
- 23. 从SQL Server中读取XML数据会降低性能
- 24. 从sql server中动态获取数据
- 25. VBA从SQL Server获取数据
- 26. 从SQL Server数据库获取信息
- 27. 数据从SQL Server获取在VBA
- 28. 文件助手从sql读取数据
- 29. 当从SQL Server读取XML数据不完整
- 30. SQL Server 05:在查询中从XML数据类型读取值
这会是没有答案是肯定的:P – khandelwaldeval 2014-10-07 15:11:20
显得那么...有什么理由?如果它能够从一切中获取数据,为什么不是最常见的商店? – ashic 2014-10-08 12:25:30
你将不得不等待几天才能得到这个答案,因为标签'apache-spark'非常庄严地使用。等待几天apache的人回答你的问题。 – khandelwaldeval 2014-10-08 12:36:44