SparkSQL JDBC和JDBCServer區別


注意SparkSQL JDBC和SparkSQL JDBCSever是完全兩種不同的場景。

SparkSQL JDBC

SparkSQL可以使用JDBC的方式訪問其他數據庫,和普通非spark程序訪問jdbc的方式相同。只是Spark中訪問jdbc提供了接口能夠將得到的數據轉化成DataFrame。而操作數據庫的過程和Spark沒什么關系。這個功能優先於使用JDBCRDD。因為它返回一個DataFrame,而DataFrame在SparkSQL中具有更加豐富的API,操作更加簡單,由於其具有結構化schema,所以更容易個來自其他的半結構化和結構化數據源的數據進行交互關聯。

val jdbcDF = sqlContext.read.format("jdbc").options( Map("url" -> "jdbc:postgresql:dbserver", "dbtable" -> "schema.tablename")).load() 

SparkSQL JDBCServer

SparkSQL JDBCServer是Spark提供的一個獨立運行的driver,用於在其他應用中執行SparkSQL查詢。例如其他的非Spark應用,可能處於數據共享的原因,需要在一個Spark集群上面執行一個SQL操作,它本身和Spark沒有什么關系,也不需要安裝Spark運行環境,只是通過Spark提供的JDBC接口(不同於上面說的接口)將SQL命令下發到SparkSQL,后續的工作就是JDBCServer的事情了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM