sparksql自定義數(shù)據(jù)源 mysql作為數(shù)據(jù)源可否直接用spark處理?
mysql作為數(shù)據(jù)源可否直接用spark處理?謝謝。Spark通過(guò)JDBC從RDB查詢數(shù)據(jù)源。不過(guò),Spark對(duì)JDBC的支持也是一個(gè)漸進(jìn)的演進(jìn)過(guò)程,關(guān)鍵是1.3版的引入,也就是數(shù)據(jù)幀。在1.3之前,
mysql作為數(shù)據(jù)源可否直接用spark處理?
謝謝。Spark通過(guò)JDBC從RDB查詢數(shù)據(jù)源。不過(guò),Spark對(duì)JDBC的支持也是一個(gè)漸進(jìn)的演進(jìn)過(guò)程,關(guān)鍵是1.3版的引入,也就是數(shù)據(jù)幀。在1.3之前,spark使用JDBCRDD處理對(duì)JDBC的查詢。它實(shí)現(xiàn)了標(biāo)準(zhǔn)的RDD接口,如分區(qū)和計(jì)算。但對(duì)很多用戶來(lái)說(shuō)太復(fù)雜了。從1.3開(kāi)始,您可以直接用DF接口做同樣的事情。例如,下面的代碼可以完成一個(gè)RDB表的查詢
如您所見(jiàn),無(wú)論數(shù)據(jù)源(hive、parquet,甚至NoSQL)的數(shù)據(jù)來(lái)自何處,在引入數(shù)據(jù)幀后,其代碼都非常相似,結(jié)果就是數(shù)據(jù)幀,您可以盡可能地將它們混合在一起。至于dataframe如何支持多個(gè)數(shù)據(jù)源以及如何優(yōu)化它們,我將再次討論源代碼。
求問(wèn)怎么設(shè)置sparksql讀取hive的數(shù)據(jù)庫(kù)?
過(guò)去,hive是用來(lái)建立數(shù)據(jù)倉(cāng)庫(kù)的,因此對(duì)hive管理的數(shù)據(jù)查詢有很大的需求。Hive、shark和sparlsql可以查詢Hive數(shù)據(jù)。Shark使用hive的SQL語(yǔ)法解析器和優(yōu)化器,修改executor,使其物理執(zhí)行過(guò)程在spark上運(yùn)行;spark-SQL使用自己的語(yǔ)法解析器、優(yōu)化器和executor,spark-SQL還擴(kuò)展了接口,不僅支持hive數(shù)據(jù)查詢,還支持多數(shù)據(jù)源的數(shù)據(jù)查詢。
spark sql構(gòu)建特征?
1. 易于集成
SQL查詢和Spark程序的無(wú)縫混合
不同語(yǔ)言的代碼開(kāi)發(fā)
2。統(tǒng)一數(shù)據(jù)源訪問(wèn)
以相同的方式連接到任何數(shù)據(jù)源。以后,sparksql可以使用統(tǒng)一的方式連接到任何外部數(shù)據(jù)源,而無(wú)需使用不同的api
3。兼容hive
sparksql可以支持hivesql語(yǔ)法sparksql兼容hivesql
4。支持標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)連接
sparksql支持標(biāo)準(zhǔn)數(shù)據(jù)庫(kù)連接JDBC或ODBC