[英]Apache Spark - JDBC Sources
是否有人设法使用其内置的Spark SQL源而不是RDDJdbc通过JDBC使用1.3中发布的新功能通过JDBC提取数据或至少连接到RDBMS?
https://databricks.com/blog/2015/03/24/spark-sql-graduates-from-alpha-in-spark-1-3.html
我已经尝试应用上面文章中提到的示例,但这没有用,因为它给了我一个错误。 以为也许有人可以在scala中为我提供有关如何连接和查询数据的完整示例。
是。 有两种方法。
加载功能将JDBC数据源数据加载为DataFrame。 如果您希望将此DataFrame在以后的Spark SQL查询中用作表,则必须使用
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语句。 但这会引发您提到的相同错误。
失败:预期为“插入”,但找到标识符CREATE
基于所有这些,我现在的结论是,当Spark对其执行数据库操作时,该DDL语句应从SQL客户端执行。 这意味着,如果您使用SparkThrift服务器从SQL工作台或任何其他SQL编辑器连接Spark,则可能会调用它。 如果成功,您也可以尝试使用JDBC / ODBC驱动程序以编程方式进行操作,然后将其连接到Thrift服务器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.