当前位置: 首页 > 面试题库 >

使用Spark SQL从SQL Server读取数据

贡光明
2023-03-14
问题内容

是否可以将数据从Microsoft Sql
Server(以及oracle,mysql等)读取到Spark应用程序中的rdd中?还是我们需要创建一个内存中的集合并将其并行化为RDD?


问题答案:

从邮件列表中找到了解决方案。可以使用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。第二,第三和第四个参数是必需的,分别用于上下限和分区数。换句话说,该源数据需要很长一段时间才能进行分区才能正常工作。



 类似资料:
  • 我正在尝试使用SparkSQL将我的数据库导出到我的S3中的镶木地板格式。 我的一张表包含行大小 Spark似乎有一个限制:使用Avro/Parket的Spark作业中的最大行大小。但不确定是否是这样。 有解决方法吗?

  • 问题内容: 我在通过火花流从天蓝色斑点读取数据时遇到问题 上面的代码适用于HDFS,但无法从Azure blob读取文件 上面是在azure UI中显示的路径,但是这行不通,我是否丢失了某些内容,以及如何访问它。 我知道Eventhub是流数据的理想选择,但是我目前的情况要求使用存储而不是队列 问题答案: 为了从Blob存储中读取数据,需要完成两件事。首先,您需要告诉Spark在基础Hadoop配

  • 我正在尝试读取Mac上pig shell上的csv文件。我所做的只是文件到变量中,然后变量。我是这样做的: 我使用的数据是从这里提供的github下载的 此文件在我的Mac上的本地安装的hdfs中可用。当我执行时,我得到一个错误: org.apache.pig.impl.logicallayer.FrontendException:错误1066:无法打开别名影片的迭代器 在org.apache.p

  • 问题内容: 我有一个MS-Access数据库,我正在使用JDBC(我认为是JDBC-ODBC桥)在Java中连接到该数据库。我的访问数据库有一些希伯来语值。 当我尝试使用String str = rs.getString(1)(rs是RowSet)读取这些值时,我得到的字符串只是一个问号字符串。 我还有希伯来语中的其他字符串,这些字符串是我在Java代码中使用字符串文字设置的,它们可以正常工作。所

  • 问题内容: 我正在尝试将数据从一页传递到另一页。 www.mints.com?name=某物 如何使用JavaScript 阅读? 问题答案: 下面的a代码可以工作,并且在不可用的情况下仍然有用,但是它是在JavaScript中没有本机解决方案的时候编写的。在现代浏览器或Node.js中,更喜欢使用内置功能。 用法如下: 它返回一个像这样的对象: 所以 给

  • 问题内容: 我想使用apachi poi从某个xlsx文件读取数据(单元格值)。下面的代码成功创建了实例,并分配了db.xlsx(我的虚拟xlsx)。我尝试过更改工作表编号,并使用该方法进行了仔细检查,以确保正确分配了工作簿。 接下来,我想为实例分配一个特定的工作表(带有name的索引),但是当前它返回。(我已经尝试过和方法)。 我究竟做错了什么? 编辑: 我尝试过方法,并取得了积极的成果。因此,