首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场

EN

Stack Overflow用户
提问于 2015-03-26 14:42:30
回答 1查看 1.7K关注 0票数 1

是否有人设法提取数据,或者至少通过JDBC连接到RDBMS,并在1.3中发布了他们的新特性:使用Spark的内置源代码,而不是RDDJdbc?

https://databricks.com/blog/2015/03/24/spark-sql-graduates-from-alpha-in-spark-1-3.html

我试着应用上面的文章中提到的例子,但是这没有起作用,因为它给了我一个错误。我想,也许有人可以在scala中为我提供一个关于如何连接和查询数据的完整示例。

EN

回答 1

Stack Overflow用户

发布于 2015-03-28 18:50:04

是。有两种方法。

  1. 以编程方式使用SQLContext加载函数。

load函数将JDBC数据源数据作为DataFrame加载。如果希望在后续的Spark查询中将此DataFrame作为表使用,则必须使用

yourDataFrame.registerTempTable("yourTableName")

如果您想要一个完整的示例,请查看我的博客帖子

  1. 使用SQL

我还没试过呢。根据我从文档中读到的内容,可以这样做,如下面的示例所示。

代码语言:javascript
运行
复制
CREATE TEMPORARY TABLE yourTableName
USING org.apache.spark.sql.jdbc
OPTIONS (
  url "jdbc:postgresql:dbserver",
  dbtable "schema.tablename"
)

您可以猜到,它既可以加载数据,也可以在同一个命令中将其注册为表。

我认为SQLContext.sql函数可以用来执行上面的SQL语句。但它会抛出你提到的同样的错误。

失败:“插入”预期,但标识符创建找到

基于所有这些,我现在的结论是,这个DDL语句是在Spark对其执行数据库时从SQL客户端执行的。这意味着,如果您使用SparkThrift服务器从server或任何其他SQL编辑器连接Spark,则可能会调用它。如果成功,还可以使用JDBC/ODBC驱动程序以编程方式进行操作,然后再连接到Thrift服务器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29281394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档