[英]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.