亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

舊版spark(1.6版本) 將rdd動態轉為dataframe

標簽:
Spark

转载请务必注明原创地址为:

1、新版

为了直观明白本文的目的,先看一下新版spark如何实现

1.1 数据

data.csv,如图:


webp

image

1.2 代码

新版代码较简单,直接通过spark.read.option("header", "true").csv(data_path)即可实现!

package com.dkl.leanring.spark.sqlimport org.apache.spark.sql.SparkSessionobject Txt2Df {  def main(args: Array[String]): Unit = {    val spark = SparkSession.builder().appName("Txt2Df").master("local").getOrCreate()    val data_path = "files/data.csv"
    val df = spark.read.option("header", "true").csv(data_path)
    df.show()
  }
}

1.3 结果

+----+----+----+----+----+|col1|col2|col3|col4|col5|+----+----+----+----+----+|  11|  12|  13|  14|  15||  21|  22|  23|  24|  25||  31|  32|  33|  34|  35||  41|  42|  43|  44|  45|+----+----+----+----+----+

2、旧版

2.1 数据

data.txt

col1,col2,col3,col4,col5
11,12,13,14,15
21,22,23,24,25
31,32,33,34,35
41,42,43,44,45

其中列数可任意指定

2.2 代码

package com.dkl.leanring.spark.sqlimport org.apache.spark.SparkConfimport org.apache.spark.SparkContextimport org.apache.spark.sql.SQLContextimport org.apache.spark.sql.types._import org.apache.spark.sql.Rowobject Rdd2Df {  def main(args: Array[String]): Unit = {    val conf = new SparkConf().setAppName("Rdd2Df").setMaster("local")    val sc = new SparkContext(conf)    val sqlContext = new SQLContext(sc)    import sqlContext.implicits._    val data_path = "files/data.txt"
    val data = sc.textFile(data_path)    val arr = data.collect()    //arr1为除去第一行即列名的数据
    val arr1 = arr.slice(1, arr.length)    val rdd = sc.parallelize(arr1)    //列名
    val schema = StructType(arr(0).split(",").map(fieldName => StructField(fieldName, StringType, true)))    val rowRDD = rdd.map(_.split(",")).map(p => Row(p: _*))
    sqlContext.createDataFrame(rowRDD, schema).show()

  }
}

2.3 结果

+----+----+----+----+----+|col1|col2|col3|col4|col5|+----+----+----+----+----+|  11|  12|  13|  14|  15||  21|  22|  23|  24|  25||  31|  32|  33|  34|  35||  41|  42|  43|  44|  45|+----+----+----+----+----+

根据结果看,符合逾期的效果!



作者:董可伦
链接:https://www.jianshu.com/p/93d0c7a8eae5


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
全棧工程師
手記
粉絲
233
獲贊與收藏
1006

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消