gpt4 book ai didi

apache-spark - Spark SQL - 使用 SQL 语句而不是表名通过 JDBC 加载数据

转载 作者:行者123 更新时间:2023-12-04 02:15:26 25 4
gpt4 key购买 nike

我想我遗漏了一些东西,但无法弄清楚是什么。我想使用特定的 sql 语句使用 SQLContext 和 JDBC 加载数据喜欢

select top 1000 text from table1 with (nolock)
where threadid in (
select distinct id from table2 with (nolock)
where flag=2 and date >= '1/1/2015' and userid in (1, 2, 3)
)

我应该使用 SQLContext 的哪个方法?我看到的示例总是指定表名和下边距和上边距。

提前致谢。

最佳答案

您应该将有效的子查询作为 dbtable 参数传递。例如在 Scala 中:

val query = """(SELECT TOP 1000 
-- and the rest of your query
-- ...
) AS tmp -- alias is mandatory*"""

val url: String = ???

val jdbcDF = sqlContext.read.format("jdbc")
.options(Map("url" -> url, "dbtable" -> query))
.load()

* Hive 语言手册子查询:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SubQueries

关于apache-spark - Spark SQL - 使用 SQL 语句而不是表名通过 JDBC 加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34365692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com