spark 下java list 或者scala list 转DataFrame or DataSet 总结

一、JAVA list 转 DataFrame or DataSet

复制代码

1

2

3

4

5

6

7

8

9

10

case class CaseJava(

                           var num: String,

                           var id: String,

                           var start_time: String,

                           var istop_time: String)

                            

val listData: java.util.List[CaseJava] = new java.util.ArrayList[CaseJava]

listData.add(new CaseJava("11","22","33","44"))

val dataFrame = spark.createDataFrame(listData, classOf[CaseJava])

复制代码

二、scala MutableList 转 DataFrame or DataSe

1、方式一:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

val spark = SparkSession.builder().appName("Spark-SQL").master("local[2]").getOrCreate()

import spark.implicits._

var tom = new TestPerson("Tom Hanks",37,35.5)

var sam = new TestPerson("Sam Smith",40,40.5)

val PersonList = mutable.MutableList[TestPerson]()

//Adding data in list

PersonList += tom

PersonList += sam

//It will be work.

var personDS = Seq(PersonList).toDS()

2、方式二:

1

2

3

4

5

6

7

8

9

10

11

12

13

case class TestPerson(name: String, age: Long, salary: Double)

val spark = SparkSession.builder().appName("List to Dataset").master("local[*]").getOrCreate()

var tom = new TestPerson("Tom Hanks",37,35.5)

var sam = new TestPerson("Sam Smith",40,40.5)

    

// mutable.MutableList[TestPerson]() is not required , i used below way which was

// cleaner

val PersonList =  List(tom,sam)

import spark.implicits._

PersonList.toDS().show

3、方式三:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

case class TestPerson(name: String, age: Long, salary: Double)

val tom = TestPerson("Tom Hanks",37,35.5)

val sam = TestPerson("Sam Smith",40,40.5)

val PersonList = mutable.MutableList[TestPerson]()

PersonList += tom

PersonList += sam

val personDS = PersonList.toDS()

println(personDS.getClass)

personDS.show()

val personDF = PersonList.toDF()

println(personDF.getClass)

personDF.show()

personDF.select("name""age").show()

 更多请参考:https://stackoverflow.com/questions/39397652/convert-scala-list-to-dataframe-or-dataset

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值