Spark DataFrameDataSet
1、DataFrame產(chǎn)生背景
? ? ? ?Google trend —>DataFrame
? ? ? ?DataFrame不是spark SQL提出的,而是早起源于R、python
? ? ? ?Spark RDD API ?vs MapReduce API ? ? ? Threshold
? ? ? ?R/Pandas ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?One machine
2、DataFrame概述
? ? ? Dataset:分布式數(shù)據(jù)集 ?DataFrame:以列(列名、列的類型、列值)的形式構成的分布式數(shù)據(jù)集,按照列賦予不同的名稱
? ? ? Student
? ? ? id:int
? ? ? name:string
? ? ? city:string
? ? ? selecting .filtering ,aggregation and plotting structured data
3、DataFrame對比RDD
? ? ? RDD分布式數(shù)據(jù)集
? ? ?RDD:
? ? ? ? ? ? ?java/scala ==> ivm
? ? ? ? ? ? ?python ==>python runtime
? ? ?DataFrame:
? ? ? ? ? ? ?java/scala/python ==> Logic Plan
4、DataFrame基本API常用操作
5、DataFrame與RDD互操作之一
? ? ?反射
? ? ?使用反射來推斷包含特定數(shù)據(jù)類型的RDD的元數(shù)據(jù)
? ? ? 使用DataFrame API 或者sql方式編程
5、DataFrame與RDD互操作之二:編程方式
DataFrame和RDD互操作的兩種方式:
1)反射:case ?class ? ? 前提:事先需要知道你的字段、字段類型
2)編程:Row ? ? ? ? ? ? ? 如果第一種情況不能滿足你的要求(事先不知道列)
3)選型:優(yōu)先選擇第一種
6、Dataset概述
分布式數(shù)據(jù)集,1.3 DataFrame出現(xiàn) ?1.6 Dataset出現(xiàn)
DataFrame = Dataset[Row]
Dataset:強類型 ? typed ?case ?class
DataFrame:弱類型 ?Row
SQL:
? ??select name from person; compile ok,result no
DataFrame:
? ? df.select(“name’) ? ? compile no
? ? df.select(“nname’) ? compile ok
Dataset
? ? ds.map(line => line.itemid) ??compile no
?
注意:代表中標紅是由于沒有放到帶有相應包的文件中
總結
以上是生活随笔為你收集整理的Spark DataFrameDataSet的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hive到SparkSql
- 下一篇: SparkSql读取外部数据源