packagesqltextimportorg.apache.spark.
importorg.apache.spark.sql.sqlcontext
importorg.apache.spark.sql.dataframe
importorg.apache.spark.sql.types.
importorg.apache.spark.sql.row
/*** created by xiaoxu
*/objectsparksql
/*** 宣告乙個schame模型類**
@param name
* @param age
*/case classperson(name: string, age: string)
/*** sparksql讀取json檔案**
@param sqlcontext
* @param path
*/defsparksqlreadjson(sqlcontext: sqlcontext, path: string): dataframe =
/*** programmatically specifying the schema(以程式設計方式指定架構) 它需要在程式中運用字串轉換成schema模型
* 然後通過createdataframe將rdd和模型關聯,再通過registertemptable登錄檔名**
@param sqlcontext
* @param sparkcontext
* @param path
*/defsparksqlreadtxt(sqlcontext: sqlcontext, sparkcontext: sparkcontext, path: string): unit =
/*** inferring the schema using reflection(使用反射推斷模式) 使用這種方式需要先定義好schema的模式然後使用todf函式轉換成dataframe
* 然後運用 registertemptable註冊零時表名**
@param sqlcontext
* @param sparkcontext
* @param path
*/defsparksqlinferrschemareadtxt(sqlcontext: sqlcontext, sparkcontext: sparkcontext, path: string): unit =
/*** 讀取json中資料 將資料寫入parquet中**
@param sqlcontext
* @param parquetpath
* @param jsonpath
*/defsparksqlwriteparquet(sqlcontext: sqlcontext, parquetpath: string, jsonpath: string): unit =
/*** sparksql讀取 parquet資料**
@param sqlcontext
* @param path
*/defsparksqlreadparquet(sqlcontext: sqlcontext, path: string): unit =
}
spark sql 入門操作
開始from pyspark.sql import sparksession spark sparksession builder config spark.some.config.option some value getorcreate 建立dataframe spark is an exist...
SparkSQL常用效能優化
一 優化 1.在資料統計的時候選擇高效能計算元。例如dataframe使用foreachpartitions將資料寫入資料庫,不要每個record都去拿一次資料庫連線。通常寫法是每個partition拿一次資料庫連線。將統計結果寫入mysql中 優化 在進行資料庫操作的時候,不要每個record都去...
Spark SQL操作Hive實戰
在目前企業級 spark大資料開發中,大多數情況下都是採用hive來作為資料倉儲的。spark提供了對hive的支援,spark通過hivecontext可以直接操作hive中的資料。基於hivecontext,我們可以使用sql hql兩種方式來編寫sql語句 對hive進行操作,包括 建立表 刪...