浅谈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 相关文章推荐
记录Django开发心得
Jul 16 Python
Python基础之函数用法实例详解
Sep 10 Python
Python安装使用命令行交互模块pexpect的基础教程
May 12 Python
详解Python函数作用域的LEGB顺序
May 14 Python
Python寻找两个有序数组的中位数实例详解
Dec 05 Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
Jul 22 Python
python实现京东订单推送到测试环境,提供便利操作示例
Aug 09 Python
使用浏览器访问python写的服务器程序
Oct 10 Python
python3+openCV 获取图片中文本区域的最小外接矩形实例
Jun 02 Python
基于Python爬取京东双十一商品价格曲线
Oct 23 Python
python 实现定时任务的四种方式
Apr 01 Python
python装饰器代码解析
Mar 23 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
php动态变量定义及使用
2015/06/10 PHP
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
2019/06/25 PHP
JQUERY复选框CHECKBOX全选,取消全选
2008/08/30 Javascript
javascript 日期时间函数(经典+完善+实用)
2009/05/27 Javascript
Javascript 类与静态类的实现
2010/04/01 Javascript
jQuery(js)获取文字宽度(显示长度)示例代码
2013/12/31 Javascript
使用typeof判断function是否存在于上下文
2014/08/14 Javascript
JavaScript 匿名函数和闭包介绍
2015/04/13 Javascript
jQuery实现按钮点击遮罩加载及处理完后恢复的效果
2016/06/07 Javascript
解析预加载显示图片艺术
2016/12/05 Javascript
JavaScript中闭包的详解
2017/04/01 Javascript
windows下vue-cli导入bootstrap样式
2017/04/25 Javascript
JS实现简易的图片拖拽排序实例代码
2017/06/09 Javascript
Vue瀑布流插件的使用示例
2018/09/19 Javascript
Node.js + express基本用法教程
2019/03/14 Javascript
详解JavaScript中的强制类型转换
2019/04/15 Javascript
Vue使用Proxy代理后仍无法生效的解决
2020/11/13 Javascript
Python中请使用isinstance()判断变量类型
2014/08/25 Python
Python使用SQLite和Excel操作进行数据分析
2018/01/20 Python
python中csv文件的若干读写方法小结
2018/07/04 Python
python实现微信小程序自动回复
2018/09/10 Python
python爬虫使用requests发送post请求示例详解
2020/08/05 Python
python实现定时发送邮件到指定邮箱
2020/12/23 Python
巴西食品补充剂在线零售商:Músculos na Web
2017/08/07 全球购物
西安启天科技有限公司网络工程师面试题笔试题
2016/06/12 面试题
单位门卫岗位职责
2013/12/20 职场文书
我的大学生活职业生涯规划
2014/01/02 职场文书
财务总监管理职责范文
2014/03/09 职场文书
工伤事故赔偿协议书
2014/04/15 职场文书
大学生英语演讲稿
2014/04/24 职场文书
安全生产专项整治方案
2014/05/06 职场文书
四风问题原因分析及整改措施
2014/10/24 职场文书
2015年妇女工作总结
2015/05/14 职场文书
哈姆雷特读书笔记
2015/06/29 职场文书
2021年pycharm的最新安装教程及基本使用图文详解
2021/04/03 Python
Redis监控工具RedisInsight安装与使用
2022/03/21 Redis