spark作者源地址 mysql作為數(shù)據(jù)源可否直接用spark處理?
mysql作為數(shù)據(jù)源可否直接用spark處理?謝謝。Spark通過JDBC從RDB查詢數(shù)據(jù)源。不過,Spark對(duì)JDBC的支持也是一個(gè)漸進(jìn)的演進(jìn)過程,關(guān)鍵是1.3版的引入,也就是數(shù)據(jù)幀。在1.3之前,
mysql作為數(shù)據(jù)源可否直接用spark處理?
謝謝。Spark通過JDBC從RDB查詢數(shù)據(jù)源。不過,Spark對(duì)JDBC的支持也是一個(gè)漸進(jìn)的演進(jìn)過程,關(guān)鍵是1.3版的引入,也就是數(shù)據(jù)幀。在1.3之前,spark使用JDBCRDD處理對(duì)JDBC的查詢。它實(shí)現(xiàn)了標(biāo)準(zhǔn)的RDD接口,如分區(qū)和計(jì)算。但對(duì)很多用戶來說太復(fù)雜了。從1.3開始,您可以直接用DF接口做同樣的事情。例如,下面的代碼可以完成一個(gè)RDB表的查詢
如您所見,無論數(shù)據(jù)源(hive、parquet,甚至NoSQL)的數(shù)據(jù)來自何處,在引入數(shù)據(jù)幀后,其代碼都非常相似,結(jié)果就是數(shù)據(jù)幀,您可以盡可能地將它們混合在一起。至于dataframe如何支持多個(gè)數(shù)據(jù)源以及如何優(yōu)化它們,我將再次討論源代碼。
spark sql構(gòu)建特征?
1. 易于集成
SQL查詢和Spark程序的無縫混合
不同語言的代碼開發(fā)
2。統(tǒng)一數(shù)據(jù)源訪問
以相同的方式連接到任何數(shù)據(jù)源。以后,sparksql可以使用統(tǒng)一的方式連接到任何外部數(shù)據(jù)源,而無需使用不同的api
3。兼容hive
sparksql可以支持hivesql語法sparksql兼容hivesql
4。支持標(biāo)準(zhǔn)數(shù)據(jù)庫連接
sparksql支持標(biāo)準(zhǔn)數(shù)據(jù)庫連接JDBC或ODBC
功能點(diǎn):配置單元:[1,數(shù)據(jù)存儲(chǔ)
hive和sparksql的區(qū)別?
hive是一個(gè)基于HDFS的數(shù)據(jù)倉庫,提供了一個(gè)基于SQL模型的查詢引擎,用于存儲(chǔ)大數(shù)據(jù)的數(shù)據(jù)倉庫的分布式交互查詢。Spark SQL不能完全取代hive。它取代了hive的查詢引擎。因?yàn)樗牡讓踊赟park自身基于內(nèi)存的特性,Spark SQL的速度比hive的查詢引擎快幾倍。Spark本身不提供存儲(chǔ),因此它不能取代hive作為數(shù)據(jù)倉庫的功能。sparksql相對(duì)于hive的另一個(gè)優(yōu)勢(shì)是它支持大量不同的數(shù)據(jù)源,包括hive、JSON、parquet、JDBC等等。由于sparksql是spark技術(shù)的核心,基于RDD,可以與spark的其他組件無縫集成,實(shí)現(xiàn)許多復(fù)雜的功能。例如,sparksql支持可以直接為HDFS文件執(zhí)行SQL語句。