使用Spark JdbcRDD进行Impala查询分页

时间:2015-08-17 20:42:55

标签: jdbc apache-spark rdd impala

我正在尝试将impala查询的输出转换为Spark RDD(或数据帧)。可以找到JdbcRDD的文档here。通过cloudera的JDBC驱动程序连接和查询impala工作得很好。问题是JdbcRDD需要上限和下限以及页面的PreparedStatement sql语句。

在查询impala时,我似乎无法使分页PreparedStatements工作。这是什么语法?我找不到Impala docs。

我试图避免在火花驱动器上收集整个结果集,这就是为什么我要从这个逻辑中移动(这完全有效):

val resultSetList = Iterator.continually((rs.next(), rs)).takeWhile(_._1).map(r => {
   getRowFromResultSet(r._2)  // (ResultSet) => (spark.sql.Row)
}).toList
sc.parallelize(resultSetList)

使用JdbcRDD,它将自动并行化数据并将其分布到集群中。

0 个答案:

没有答案