是否有人设法提取数据,或者至少通过JDBC连接到RDBMS,并在1.3中发布了他们的新特性:使用Spark的内置源代码,而不是RDDJdbc?
https://databricks.com/blog/2015/03/24/spark-sql-graduates-from-alpha-in-spark-1-3.html
我试着应用上面的文章中提到的例子,但是这没有起作用,因为它给了我一个错误。我想,也许有人可以在scala中为我提供一个关于如何连接和查询数据的完整示例。
发布于 2015-03-28 18:50:04
是。有两种方法。
load函数将JDBC数据源数据作为DataFrame加载。如果希望在后续的Spark查询中将此DataFrame作为表使用,则必须使用
yourDataFrame.registerTempTable("yourTableName")
如果您想要一个完整的示例,请查看我的博客帖子。
我还没试过呢。根据我从文档中读到的内容,可以这样做,如下面的示例所示。
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服务器。
https://stackoverflow.com/questions/29281394
复制相似问题