浅谈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实现通过shelve修改对象实例
Sep 26 Python
python在windows命令行下输出彩色文字的方法
Mar 19 Python
使用Python保存网页上的图片或者保存页面为截图
Mar 05 Python
Python 中的 else详解
Apr 23 Python
简单谈谈Python中的json与pickle
Jul 19 Python
Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例
Aug 31 Python
Python for循环中的陷阱详解
Jul 13 Python
python hook监听事件详解
Oct 25 Python
python with语句的原理与用法详解
Mar 30 Python
tensorflow转换ckpt为savermodel模型的实现
May 25 Python
为什么相对PHP黑python的更少
Jun 21 Python
python 操作excel表格的方法
Dec 05 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
SONY SRF-22W(33W)的电路分析和维修案例
2021/03/02 无线电
php 方便水印和缩略图的图形类
2009/05/21 PHP
PHP 错误处理机制
2015/07/06 PHP
greybox——不开新窗口看新的网页
2007/02/20 Javascript
有效的捕获JavaScript焦点的方法小结
2009/10/08 Javascript
网页中的图片的处理方法与代码
2009/11/26 Javascript
ExtJs默认的字体大小改变的几种方法(自己整理)
2013/04/18 Javascript
仿JQuery输写高效JSLite代码的一些技巧
2015/01/13 Javascript
javascript中sort()的用法实例分析
2015/01/30 Javascript
js实现Form栏显示全格式时间时钟效果代码
2015/08/19 Javascript
jquery+正则实现统一的表单验证
2015/09/20 Javascript
分享一些常用的jQuery动画事件和动画函数
2015/11/27 Javascript
javascript+HTML5自定义元素播放焦点图动画
2016/02/21 Javascript
Node.js Streams文件读写操作详解
2016/07/04 Javascript
Angular2中Bootstrap界面库ng-bootstrap详解
2016/10/18 Javascript
Angular4绑定html内容出现警告的处理方法
2017/11/03 Javascript
vue-cli 默认路由再子路由选中下的选中状态问题及解决代码
2018/09/06 Javascript
利用Vue构造器创建Form组件的通用解决方法
2018/12/03 Javascript
Vue中常用rules校验规则(实例代码)
2019/11/14 Javascript
[05:31]DOTA2英雄梦之声_第08期_莉娜
2014/06/23 DOTA
Python内置函数的用法实例教程
2014/09/08 Python
Python中的数据对象持久化存储模块pickle的使用示例
2016/03/03 Python
读取本地json文件,解析json(实例讲解)
2017/12/06 Python
在python中按照特定顺序访问字典的方法详解
2018/12/14 Python
Staples英国官方网站:办公用品一站式采购
2017/10/06 全球购物
澳洲Chemist Direct药房中文网:澳洲大型线上直邮药房
2019/11/04 全球购物
最新党员思想汇报
2014/01/01 职场文书
追悼会上的答谢词
2014/01/10 职场文书
《夸父追日》教学反思
2014/02/26 职场文书
公司司机岗位职责范本
2014/03/03 职场文书
计算机毕业大学生求职信
2014/06/26 职场文书
护林员个人总结
2015/03/04 职场文书
调解书格式范本
2015/05/20 职场文书
七年级英语教学反思
2016/02/15 职场文书
2019年干货:自我鉴定
2019/03/25 职场文书
手把手教你制定暑期学习计划,让你度过充实的暑假
2019/08/22 职场文书