使用Spark读取Oracle数据库中的所有表

时间:2018-01-03 07:33:00

标签: scala apache-spark spark-dataframe sqoop

目标:从Spark中读取oracle数据库中的所有表。

调查结果:我已经编写了读取单个表的代码。我可以多次重复使用它来读取多个表,但这将连接到我将读取的oracle数据库表数。

val employees = sqlContext.load(
    "jdbc",
    Map("url" -> "url")",
    "dbtable" -> "tableName")
)

根据" dbtable"中的spark文档参数我们只能有表名或任何子查询。 我们有什么选项可以选择像spark中的sqoop import-all-tables来读表吗?

1 个答案:

答案 0 :(得分:0)

最近我遇到了同样的情况,我需要对Cassandra表进行备份。我们提供了一个解决方案,我们在Keyspace中列出了所有表名作为文本文件。我们编写了一个Shell脚本,从中我读取了该文件,并将键空间和表名作为参数传递给Spark代码。

注意 - 这不是一个好方法。 Sqoop适用于这种情况。