浅谈DataFrame和SparkSql取值误区


Posted in Python onJune 09, 2018

1、DataFrame返回的不是对象。

2、DataFrame查出来的数据返回的是一个dataframe数据集。

3、DataFrame只有遇见Action的算子才能执行

4、SparkSql查出来的数据返回的是一个dataframe数据集。

原始数据

scala> val parquetDF = sqlContext.read.parquet("hdfs://hadoop14:9000/yuhui/parquet/part-r-00004.gz.parquet")
df: org.apache.spark.sql.DataFrame = [timestamp: string, appkey: string, app_version: string, channel: string, lang: string, os_type: string, os_version: string, display: string, device_type: string, mac: string, network: string, nettype: string, suuid: string, register_days: int, country: string, area: string, province: string, city: string, event: string, use_interval_cat: string, use_duration_cat: string, use_interval: bigint, use_duration: bigint, os_upgrade_from: string, app_upgrade_from: string, page_name: string, event_name: string, error_type: string]

浅谈DataFrame和SparkSql取值误区

代码

package DataFrame
import org.apache.spark.sql.SQLContext
import org.apache.spark.{SparkConf, SparkContext}
/**
 * Created by yuhui on 2016/6/14.
 */
object DataFrameTest {
 def main(args: Array[String]) {
 DataFrameInto()
 }
 def DataFrameInto() {
 val conf = new SparkConf()
 val sc = new SparkContext(conf)
 val sqlContext = new SQLContext(sc)
 val df = sqlContext.read.parquet("hdfs://hadoop14:9000/yuhui/parquet")
 //df.map(line => printinfo(line.getString(0)))
 //df.foreach(line => printinfo(line.getString(0)+" , "+line.getString(14)+" , "+line.getString(15)))
 //df.select("timestamp","country","area").foreach(line=>printinfo(line.toString))
 df.registerTempTable("infotable")
 sqlContext.sql("SELECT timestamp , country , area from infotable").foreach(line=>printinfo(line.toString))
 }
 def printinfo(msg: String) {println("printinfo函数-->" + msg) }
}

代码解析

1、df.map(line => printinfo(line.getString(0)))

这段代码不行执行printinfo()函数,因为只有map算子,没有Action算子。

2、df.foreach(line => printinfo(line.getString(0)+" , "+line.getString(14)+" , "+line.getString(15)))

通过Spark的Action算子接收数据进行操作,执行结果如下:

浅谈DataFrame和SparkSql取值误区

3、df.select("timestamp","country","area").foreach(line=>printinfo(line.toString))

通过DataFrame的API进行操作,再通过Spark的Action算子打印出来,执行结果如下:

浅谈DataFrame和SparkSql取值误区

4、sqlContext.sql("SELECT timestamp , country , area from infotable").foreach(line=>printinfo(line.toString))

执行结果如下:

浅谈DataFrame和SparkSql取值误区

以上这篇浅谈DataFrame和SparkSql取值误区就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python下载懒人图库JavaScript特效
May 28 Python
Python实现完整的事务操作示例
Jun 20 Python
Python矩阵常见运算操作实例总结
Sep 29 Python
Python爬虫获取整个站点中的所有外部链接代码示例
Dec 26 Python
使用Python通过win32 COM打开Excel并添加Sheet的方法
May 02 Python
python2和python3在处理字符串上的区别详解
May 29 Python
python3.7 使用pymssql往sqlserver插入数据的方法
Jul 08 Python
python selenium 查找隐藏元素 自动播放视频功能
Jul 24 Python
python实现生成Word、docx文件的方法分析
Aug 30 Python
Django ValuesQuerySet转json方式
Mar 16 Python
什么是Python包的循环导入
Sep 08 Python
Python基于百度API识别并提取图片中文字
Jun 27 Python
基于DATAFRAME中元素的读取与修改方法
Jun 08 #Python
pandas Dataframe行列读取的实例
Jun 08 #Python
python 给DataFrame增加index行名和columns列名的实现方法
Jun 08 #Python
python中for用来遍历range函数的方法
Jun 08 #Python
删除python pandas.DataFrame 的多重index实例
Jun 08 #Python
python爬虫正则表达式之处理换行符
Jun 08 #Python
pandas 数据实现行间计算的方法
Jun 08 #Python
You might like
《Re:从零开始的异世界生活》剧情体验,手游新作定名
2020/04/09 日漫
phpBB BBcode处理的漏洞
2006/10/09 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
2014/04/08 PHP
PHP通过插入mysql数据来实现多机互锁实例
2014/11/05 PHP
基于ThinkPHP删除目录及目录文件函数
2020/10/28 PHP
YUI的Tab切换实现代码
2010/04/11 Javascript
图片动画横条广告带上下滚动可自定义图片、链接等等
2013/10/20 Javascript
8个实用的jQuery技巧
2014/03/04 Javascript
跟我学习javascript的undefined与null
2015/11/17 Javascript
js中最容易被忽视的事件问题大总结
2016/05/15 Javascript
原生js实现手风琴功能(支持横纵向调用)
2017/01/13 Javascript
初识NodeJS服务端开发入门(Express+MySQL)
2017/04/07 NodeJs
vue、react等单页面项目部署到服务器的方法及vue和react的区别
2018/09/29 Javascript
[00:30]塑造者的传承礼包-戴泽“暗影之焰”套装展示视频
2014/04/04 DOTA
Saltstack快速入门简单汇总
2016/03/01 Python
详解Python中的__new__、__init__、__call__三个特殊方法
2016/06/02 Python
解决每次打开pycharm直接进入项目的问题
2018/10/28 Python
pandas基于时间序列的固定时间间隔求均值的方法
2019/07/04 Python
Python循环结构的应用场景详解
2019/07/11 Python
Python中调用其他程序的方式详解
2019/08/06 Python
Python字符串中添加、插入特定字符的方法
2019/09/10 Python
pytorch masked_fill报错的解决
2020/02/18 Python
Python新手学习函数默认参数设置
2020/06/03 Python
加拿大女装网上购物:Reitmans
2016/10/20 全球购物
英国计算机产品零售商:Novatech(定制个人电脑、笔记本电脑、工作站和服务器)
2018/01/28 全球购物
Booking.com德国:预订最好的酒店和住宿
2020/02/16 全球购物
毕业生简单求职信
2013/11/19 职场文书
护理专业自我鉴定
2014/01/30 职场文书
精彩的英文自荐信
2014/01/30 职场文书
母亲节感恩寄语
2014/02/21 职场文书
义和团口号
2014/06/17 职场文书
小学生纪念九一八事变演讲稿
2014/09/14 职场文书
民主评议党员个人自我评价
2015/03/03 职场文书
公务员保密工作承诺书
2015/05/04 职场文书
交通事故调解协议书
2015/05/20 职场文书
如何设计高效合理的MySQL查询语句
2021/05/26 MySQL