Spark
Core的数据抽象:RDD
Spark
Streaming的数据抽象:DStream,底层是RDD
Spark
SQL
的数据抽象:
DataFrame
和DataSet,底层是RDD
1、
DataFrame
DataFrame
= RDD - 泛型 + Schema约束(指定字段名和类型)+
SQL
操作 + 优化
DataFrame
就是在RDD的基础之上做了进一步的封装,支持
SQL
操作
很久没有更新博客了,因为最近工作确实也很忙,不过忙碌的工作也让我收获了很多新的知识,趁着忙碌的间隙,来记录一下自己的成长。
这次的场景是:需要单独
取出
DataFrame
中的某一列的所有值供Java程序使用。
下面的demo包含两个例子:
1.column value Type ->
String
, 即 row->
String
,需要用到mk
String
这个方法
2.column value Type -> WrappedArray, 即Seq(
String
) ->
String
, 需要
Spark
中将将数据Array或者
list
转为
dataFrame
编造数据这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入
其实只是为了编造数据,找了几篇都不满意。项目中使用的
因为
Spark
DataFrame
是基于RDD创建的,所以
DataFrame
的操作也可以分为两种类型:
转
化操作和行动操作。
转
化操作可以将
Spark
DataFrame
转
化为新的
DataFrame
,而不改变原有数据。
转
化操作都是惰性的,不会立即计算出来。而行动操作会触发所有
转
化操作的实际求值。......
I have a
list
with more than 30
string
s. how to convert
list
into
dataframe
.what i tried:egVal
list
=
List
("a","b","v","b").toDS().toDF()Output :+-------+| value|+-------+|a ||b ||v ||b...
collect_
list
:把一个分组中的列合成为数组,数据不去重,格式是['a','a','b']
collect_set:把一个分组中的列合成为集合,数据去重,格式是['a','b']
用于连接文本数组的函数,通过sep把...
行列
转
换的其实是一个很常用的数据分析操作,用在数据的拼接与拆分上,实现一些普通的函数无法实现的效果
列
转
行
首先为大家介绍的是列
转
行函数,涉及到的的内建函数有,collect_
list
列
转
行之后不去重,collect_set 列
转
行之后去重。 列
转
行对数据的要求为 column 的数据类型是
string
,使用实例如下
原数据如下
2018-01,项目1,100
2018-01,项目2,200
2018-01,项目3,300
2018-01,项目3,400
2018-02,项目1,1000
2018-
import org.apache.
spark
.
sql
.
SQL
Context
import org.apache.
spark
.{
Spark
Conf,
Spark
Context}
* 创建json格式的
list
注册成临时表用
sql
语句查...
import org.apache.
spark
.
sql
.types.{StructType,StructField,
String
Type, IntegerType, LongType}
import java.util.Array
List
import org.apache.
spark
.
sql
._
val data
List
= new util.Array
List
[Row]()
data
List
.add(Row("ming",20,15552211521L))