Scala DataFrame生成技巧
来源:互联网 发布:简述算法的复杂度分析 编辑:程序博客网 时间:2024/04/30 16:47
case1:List()到DataFrame()的简单转化
//step1:我们首先创建一个case class
case class resultset(masterhotel:Int,
quantity:Double,
date:String,
rank:Int,
frcst_cii:Double,
hotelid:Int)
//step2
//初始化resultset类,有很多方法,如从关系型数据库中获取数据定义resultset类、
//直接定义一个resultset的List等
val x1=List(resultset(1001,12,"2016-10-01", 1, 13.44,1001),
resultset(1002,12,"2016-10-01", 3, 13.44,1002),
resultset(1004,15,"2016-10-02", 10, 18.44,1004),
resultset(1005,5,"2016-10-02", 40, 5.67,1005)
)
val dataset1=sqlContext.createDataFrame(x1)
scala> dataset1.show()
+-----------+--------+----------+----+---------+-------+
|masterhotel|quantity| date|rank|frcst_cii|hotelid|
+-----------+--------+----------+----+---------+-------+
| 1001| 12.0|2016-10-01| 1| 13.44| 1001|
| 1002| 12.0|2016-10-01| 3| 13.44| 1002|
| 1004| 15.0|2016-10-02| 10| 18.44| 1004|
| 1005| 5.0|2016-10-02| 40| 5.67| 1005|
+-----------+--------+----------+----+---------+-------+
case2:元组元素的数组如何转化为列表,再利用类转化为DataFrame()
val x2=Array((1001,12,"2016-10-01", 1, 13.44,1001),
(1002,12,"2016-10-01", 3, 13.44,1002),
(1004,15,"2016-10-02", 10, 18.44,1004),
(1005,5,"2016-10-02", 40, 5.67,1005)
)
val x3=(0 until x2.length).map(i => resultset(x2(i)._1,x2(i)._2,x2(i)._3,x2(i)._4,x2(i)._5,x2(i)._6))//元组的访问方式
val x4=x3.toList
val dataset2=sqlContext.createDataFrame(x4)
scala> dataset2.show()
+-----------+--------+----------+----+---------+-------+
|masterhotel|quantity| date|rank|frcst_cii|hotelid|
+-----------+--------+----------+----+---------+-------+
| 1001| 12.0|2016-10-01| 1| 13.44| 1001|
| 1002| 12.0|2016-10-01| 3| 13.44| 1002|
| 1004| 15.0|2016-10-02| 10| 18.44| 1004|
| 1005| 5.0|2016-10-02| 40| 5.67| 1005|
+-----------+--------+----------+----+---------+-------+
case3:数组与列表之间可以相互转化
scala> val a=Array(1,2).toList
a: List[Int] = List(1, 2)
scala> a.toArray
//step1:我们首先创建一个case class
case class resultset(masterhotel:Int,
quantity:Double,
date:String,
rank:Int,
frcst_cii:Double,
hotelid:Int)
//step2
//初始化resultset类,有很多方法,如从关系型数据库中获取数据定义resultset类、
//直接定义一个resultset的List等
val x1=List(resultset(1001,12,"2016-10-01", 1, 13.44,1001),
resultset(1002,12,"2016-10-01", 3, 13.44,1002),
resultset(1004,15,"2016-10-02", 10, 18.44,1004),
resultset(1005,5,"2016-10-02", 40, 5.67,1005)
)
val dataset1=sqlContext.createDataFrame(x1)
scala> dataset1.show()
+-----------+--------+----------+----+---------+-------+
|masterhotel|quantity| date|rank|frcst_cii|hotelid|
+-----------+--------+----------+----+---------+-------+
| 1001| 12.0|2016-10-01| 1| 13.44| 1001|
| 1002| 12.0|2016-10-01| 3| 13.44| 1002|
| 1004| 15.0|2016-10-02| 10| 18.44| 1004|
| 1005| 5.0|2016-10-02| 40| 5.67| 1005|
+-----------+--------+----------+----+---------+-------+
case2:元组元素的数组如何转化为列表,再利用类转化为DataFrame()
val x2=Array((1001,12,"2016-10-01", 1, 13.44,1001),
(1002,12,"2016-10-01", 3, 13.44,1002),
(1004,15,"2016-10-02", 10, 18.44,1004),
(1005,5,"2016-10-02", 40, 5.67,1005)
)
val x3=(0 until x2.length).map(i => resultset(x2(i)._1,x2(i)._2,x2(i)._3,x2(i)._4,x2(i)._5,x2(i)._6))//元组的访问方式
val x4=x3.toList
val dataset2=sqlContext.createDataFrame(x4)
scala> dataset2.show()
+-----------+--------+----------+----+---------+-------+
|masterhotel|quantity| date|rank|frcst_cii|hotelid|
+-----------+--------+----------+----+---------+-------+
| 1001| 12.0|2016-10-01| 1| 13.44| 1001|
| 1002| 12.0|2016-10-01| 3| 13.44| 1002|
| 1004| 15.0|2016-10-02| 10| 18.44| 1004|
| 1005| 5.0|2016-10-02| 40| 5.67| 1005|
+-----------+--------+----------+----+---------+-------+
case3:数组与列表之间可以相互转化
scala> val a=Array(1,2).toList
a: List[Int] = List(1, 2)
scala> a.toArray
res69: Array[Int] = Array(1, 2)
case4:DataFrame()可以直接转化为cae2中的数组Array
0 0
- Scala DataFrame生成技巧
- spark生成DataFrame
- DataFrame:通过SparkSql将scala类转为DataFrame
- RDD和DataFrame转换(Java+Scala)
- 使用Java和Scala在IDE中开发DataFrame实战
- 使用Java和Scala在IDE中开发DataFrame实战
- 使用Java和Scala在IDE中开发DataFrame
- 利用JAVA、SCALA实现RDD和DataFrame转换
- spark scala 对dataframe进行过滤----filter方法使用
- scala小技巧
- Scala中repl 中的技巧
- scala 反射生成对象方法
- scala——随机数生成
- scala生成jar包步骤
- 使用DataFrame和numpy生成交叉表(笛卡尔积)
- 【python】生成笛卡尔积(交叉表)DataFrame和numpy
- 第58课:使用Java和Scala在IDE中开发DataFrame实战学习笔记
- 第58课:使用Java和Scala在IDE中开发DataFrame实战学习笔记
- 最短路径基本介绍(2)--Dijkstra算法(单源最短路径算法)
- 算法学习--4 设置一个有getMin功能的栈之栈的升级版(待修改)
- uva1347 Tour
- js的事件
- 【寒江雪】BMP位图文件格式分析
- Scala DataFrame生成技巧
- NetRiver - 滑动窗口协议实验
- CSDN-markdown编辑器
- JavaScript
- java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType
- 3. 串的处理 在实际的开发工作中,对字符串的处理是最常见的编程任务。 本题目即是要求程序对用户输入的串进行处理。具体规则如下: 1. 把每个单词的首字母变为大写。 2. 把数字与
- HSSFWorkBooK用法 —Excel表的导出和设置
- 正则表达式---六(其他通用规则)
- iOS 开发 多线程详解之NSThread线程通信的操作与控制