好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > spark rdd轉dataframe 寫入mysql的實例講解

spark rdd轉dataframe 寫入mysql的實例講解

熱門標簽:外呼系統從哪買 承德電腦地圖標注 深圳 合肥營銷外呼系統收費 地圖標注賺錢真假 陜西400電話如何申請 德惠市地圖標注 商家地圖標注哪個好 遵義地圖標注app

dataframe是在spark1.3.0中推出的新的api,這讓spark具備了處理大規模結構化數據的能力,在比原有的RDD轉化方式易用的前提下,據說計算性能更還快了兩倍。spark在離線批處理或者實時計算中都可以將rdd轉成dataframe進而通過簡單的sql命令對數據進行操作,對于熟悉sql的人來說在轉換和過濾過程很方便,甚至可以有更高層次的應用,比如在實時這一塊,傳入kafka的topic名稱和sql語句,后臺讀取自己配置好的內容字段反射成一個class并利用出入的sql對實時數據進行計算,這種情況下不會spark streaming的人也都可以方便的享受到實時計算帶來的好處。    

下面的示例為讀取本地文件成rdd并隱式轉換成dataframe對數據進行查詢,最后以追加的形式寫入mysql表的過程,scala代碼示例如下

import java.sql.Timestamp
import org.apache.spark.sql.{SaveMode, SQLContext}
import org.apache.spark.{SparkContext, SparkConf}
object DataFrameSql {
 case class memberbase(data_date:Long,memberid:String,createtime:Timestamp,sp:Int)extends Serializable{
 override def toString: String="%d\t%s\t%s\t%d".format(data_date,memberid,createtime,sp)
 }
 def main(args:Array[String]): Unit ={
 val conf = new SparkConf()
 conf.setMaster("local[2]")
// ----------------------
 //參數 spark.sql.autoBroadcastJoinThreshold 設置某個表是否應該做broadcast,默認10M,設置為-1表示禁用
 //spark.sql.codegen 是否預編譯sql成java字節碼,長時間或頻繁的sql有優化效果
 // spark.sql.inMemoryColumnarStorage.batchSize 一次處理的row數量,小心oom
 //spark.sql.inMemoryColumnarStorage.compressed 設置內存中的列存儲是否需要壓縮
// ----------------------
 conf.set("spark.sql.shuffle.partitions","20") //默認partition是200個
 conf.setAppName("dataframe test")
 val sc = new SparkContext(conf)
 val sqc = new SQLContext(sc)
 val ac = sc.accumulator(0,"fail nums")
 val file = sc.textFile("src\\main\\resources\\000000_0")
 val log = file.map(lines => lines.split(" ")).filter(line =>
  if (line.length != 4) { //做一個簡單的過濾
  ac.add(1)
  false
  } else true)
  .map(line => memberbase(line(0).toLong, line(1),Timestamp.valueOf(line(2)), line(3).toInt))
 // 方法一、利用隱式轉換
 import sqc.implicits._
 val dftemp = log.toDF() // 轉換
 /*
  方法二、利用createDataFrame方法,內部利用反射獲取字段及其類型
  val dftemp = sqc.createDataFrame(log)
  */
 val df = dftemp.registerTempTable("memberbaseinfo")
 /*val sqlcommand ="select date_format(createtime,'yyyy-MM')as mm,count(1) as nums " +
  "from memberbaseinfo group by date_format(createtime,'yyyy-MM') " +
  "order by nums desc,mm asc "*/
 val sqlcommand="select * from memberbaseinfo"
 val sel = sqc.sql(sqlcommand)
 val prop = new java.util.Properties
 prop.setProperty("user","etl")
 prop.setProperty("password","xxx")
 // 調用DataFrameWriter將數據寫入mysql
 val dataResult = sqc.sql(sqlcommand).write.mode(SaveMode.Append).jdbc("jdbc:mysql://localhost:3306/test","t_spark_dataframe_test",prop) // 表可以不存在
 println(ac.name.get+" "+ac.value)
 sc.stop()
 }
}

上面代碼textFile中的示例數據如下,數據來自hive,字段信息分別為 分區號、用戶id、注冊時間、第三方號

20160309 45386477 2012-06-12 20:13:15 901438
20160309 45390977 2012-06-12 22:38:06 901036
20160309 45446677 2012-06-14 21:57:39 901438
20160309 45464977 2012-06-15 13:42:55 901438
20160309 45572377 2012-06-18 14:55:03 902606
20160309 45620577 2012-06-20 00:21:09 902606
20160309 45628377 2012-06-20 10:48:05 901181
20160309 45628877 2012-06-20 11:10:15 902606
20160309 45667777 2012-06-21 18:58:34 902524
20160309 45680177 2012-06-22 01:49:55 
20160309 45687077 2012-06-22 11:23:22 902607

這里注意字段類型映射,即case class類到dataframe映射,從官網的截圖如下

更多明細可以查看官方文檔 Spark SQL and DataFrame Guide

以上這篇spark rdd轉dataframe 寫入mysql的實例講解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • SparkSQL使用IDEA快速入門DataFrame與DataSet的完美教程
  • DataFrame:通過SparkSql將scala類轉為DataFrame的方法
  • pyspark.sql.DataFrame與pandas.DataFrame之間的相互轉換實例
  • 淺談DataFrame和SparkSql取值誤區
  • Spark SQL 2.4.8 操作 Dataframe的兩種方式

標簽:巴中 新余 三門峽 南陽 貴州 商丘 揚州 贛州

巨人網絡通訊聲明:本文標題《spark rdd轉dataframe 寫入mysql的實例講解》,本文關鍵詞  spark,rdd,轉,dataframe,寫入,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《spark rdd轉dataframe 寫入mysql的實例講解》相關的同類信息!
  • 本頁收集關于spark rdd轉dataframe 寫入mysql的實例講解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: x8x8拨牐拨牐国产在线| 男人桶女人暴爽30分钟| 美女私密尿孔18| 国产亚洲综合一区二区A片吴施蒙 亚洲综合久久日韩婷婷五月色婷婷 | 绯色aV人妻一区二区三区浪潮| 高清毛片一区二区三区| 一级黄色网络| 西充县| 西西大胆私人ti艺体| 亚洲综合精品尤物秘?999| 99国内精品久久久久久久软件 | 早就想在公司把你给做了| 最近更新免费中文字幕大全| 西西人体裸体自慰gogo| 亚va精品乱码一二三四区别| 刘涛衣服溜肩原版| 3D动漫精品视频在线观看| 视频国产91| 欧美成人手机视频| 日韩精品久久久久久久电影99爱| 精品国精品国产自在久国产91| 男人和女人黄 色大片| 少妇高潮免费看一级A片出水小说| 亲嘴扒胸摸屁股激烈视频| 久久久亚洲熟妇熟女ⅩXXX蜜| 特级姪片内谢A片AAA毛片| 泡泡影视福利影院| 最近中文字幕在线| 美女扒开大腿爆乳无遮挡A片软件 美女扒开屁股露出奶头免费看软件 | 边走楼梯边做嗯好爽| 欧美男同AV无码入口| 国产69精品麻豆久久久久| 午夜刺激爽爽视频免费观看| 宝贝啊宝贝我是你的大锤什么歌| Japanese高潮喷水抽搐| 奇米777狠狠888俺也去| 久久久久久久99精品免费| 久久99国产亚洲高清观看玉蒲团| 一本久道热中字伊人| 欧美韩国精品另类综合| 艳鉧无码动漫1~6在线观看|