gpt4 book ai didi

java - Apache Spark - JDBC 源

转载 作者:太空宇宙 更新时间:2023-11-04 14:01:21 25 4
gpt4 key购买 nike

是否有人使用 Spark SQL 的内置源(而不是 RDDJdbc)使用 1.3 中发布的新功能成功地通过 JDBC 提取数据或至少连接到 RDBMS?

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

我尝试应用上面帖子中提到的示例,但这不起作用,因为它给了我一个错误。我想也许有人可以为我提供一个完整的 scala 示例,说明如何连接和查询数据。

最佳答案

是的。有两种方法可以做到这一点。

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

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

进行注册

yourDataFrame.registerTempTable("yourTableName")

如果您想要完整的示例,请查看我的 blog post

  • 使用 SQL
  • 我还没试过这个。根据我从文档中读到的内容,这可以像下面的示例一样完成。

    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 服务器。

    关于java - Apache Spark - JDBC 源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29281394/

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